我是react js
和Redux
的新手。在这里,我有一个对象数组,例如,
const initialState = {
Low: [
{
id: 0,
type: '',
count: '',
allowded: 6,
level: 'EASY'
}
],
Medium: [
{
id: 0,
type: '',
count: '',
allowded: 7,
level: 'MEDIUM'
}
],
High: [
{
id: 0,
type: '',
count: '',
allowded: 7,
level: 'TOUGH'
}
]
}
这是在减速器中。
现在,我有一个onChange函数,它实际上会更改此数组中的值。
onChange(event, tobeupdated, id, type, noc, data) {
let newData = { ...this.props.data };
if (newData) {
let data = newData[type].map((object, index) => {
if (object.id === id) {
object[tobeupdated] = event.target.value;
const tobeData = newData[type];
this.props.updateLowLevel({tobeData, type}).then(() => {
let criteria_filled = this.disableAddbutton({ ...this.props.data }, type);
addedRow = `new${type}RowAdded`;
this.setState({
[addedRow]: criteria_filled ? true : false
})
});
}
由此,我正在更新该对象的值。取决于类型。
现在,在动作创建者中,
return (dispatch) => {
dispatch({
type: QUIZ_DATA,
data: tobeUpdated,
});
return Promise.resolve();
}
}
在我的减速器中,我正在更新它,
case QUIZ_DATA:
return {
...state,
[action.data.type]: [action.data.tobeData],
error: false,
}
现在,在这里,当我更改type
然后将对象数组添加到该数组时,会发生什么,但是当我尝试更改diff键的时间是什么时候,
在对象数组中,元素中又添加了一个obj。所以,因此,我无法正确获得该渲染。
有人可以帮我吗?