我有一个React-table
,我在其中传递来自reducer的initialState
的数据,如下所示:
const getData = () => {
return {
data: [{},{},{}]
}
}
const initialState = getData();
const ipReducer = (state = initialState, action) => {
if (action.type === 'CHANGE_IP_STATUS') {
let newState = Object.assign({}, state);
return { newState }
} else {
return state;
}
}
export default ipReducer;
getData()
将从服务器获取数据。
我在表行中有切换器,可以更改表数据状态。因此,我执行redux动作来更改表的状态。但是,当操作完成后,表表将获取undefined
数据。
这是我的桌子:
<div>
<ReactTable
data={this.props.data}
columns={columns}
/>
</div>
这是我到道具地图的状态:
const mapStateToProps = (state) => ({
data: state.ipTable.data,
})
从console.log()
中我看到我的ipReducer
返回了有效的数据对象。但是为什么执行更改状态后该对象没有出现在我的表组件中?
答案 0 :(得分:1)
您应该返回return { newState }
而不是返回newState
,因为它已经是从更新状态创建的对象
const ipReducer = (state = initialState, action) => {
if (action.type === 'CHANGE_IP_STATUS') {
let newState = Object.assign({}, state);
return newState;
} else {
return state;
}
}