gpt4 book ai didi

javascript - react /归零 : TypeError: Cannot read property 'target' of undefined

转载 作者:行者123 更新时间:2023-11-30 14:25:00 26 4
gpt4 key购买 nike

我正在尝试使用特定用户的编辑字段(firstNamelastNameemail)更新我的状态(用户列表) >).这个想法是每当用户更改表单中输入的值时,都会触发创建者操作以使用新值更新状态中的用户对象。下面是我的代码片段:

在我的 reducers.js 中:

case actionCreators.changeUserValues.getType():
return {
...state,
usersList: [
...state.usersList.map((user) => {
if (user.username === action.payload.username) {
return {
...user,
[action.payload.name]: action.payload.value,
};
}
return user;
}),
],
editButtonDisabled: false,
submitButtonDisabled: true,
selectedUserProfile: {
userObject: {
...state.selectedUserProfile.userObject,
[action.payload.name]: action.payload.value,
},
},
};

actionCreators.js 文件中:

const changeUserValues = createAction(CHANGE_USER_VALUES, userData => userData);

const onValueChange = event => (dispatch, getState) => {
const { value, name } = event.target;
const { username } = getState().selectedUserProfile.username;
return dispatch(changeUserValues({ name, value, username }));
};

在我的容器中:

const mapDispatchToProps = dispatch => ({
// some stuff
onValueChange: () => dispatch(actionCreators.onValueChange()),
});

为了测试我的代码,我编辑了表单并在 onValueChange() actionCreator 代码中收到此错误 TypeError: Cannot read property 'target' of undefined。我不知道如何传递/捕获 event(因为我正在尝试“redux”this)

最佳答案

您没有将事件传递给您的 reducer

const mapDispatchToProps = dispatch => ({
// some stuff
onValueChange: (event) => dispatch(actionCreators.onValueChange(event)),
});

要获得更完整的答案...当您使用输入值时,只需传递事件即可。只要 mapDispatchToProps 在那里也有值,它就应该一直到你的 Action / reducer 。

<input onChange={e=>this.props.onValueChange(e)} />

关于javascript - react /归零 : TypeError: Cannot read property 'target' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52085337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com