【发布时间】:2018-12-11 18:09:49
【问题描述】:
我是react-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(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 时会发生什么,然后它将该对象数组作为子对象添加到前一个数组中。因此,它会根据您添加的数量添加。
所以,因此我无法正确获得该渲染。
这种方式被添加。那么,我该怎么做呢?
谁能帮我看看这个?
【问题讨论】:
-
一次,尝试在 reducer 中创建一个局部变量,并使其类似于:
case QUIZ_DATA: {let data; data = [...state]; data.data.type = action.data.tobeData; return data} -
数据 = [...状态];这样做之后,数据并没有得到它不受保护的实际数据
-
能否请您发布完整的减速器代码?我的意思是从上到下。我想看看你一开始是如何处理状态的
标签: javascript reactjs redux react-redux