react + redux:商店的状态在没有视图变化的情况下发生了变化

时间:2017-08-18 10:12:59

标签: javascript reactjs redux react-redux connect

我尝试使用Action Object。使用教程中的react-redux。我有2个connect模块。当在一个模块中调度时,dev-tools显示更改和新状态,但另一个模块的视图不会更改。

App.js

export default connect(...)(...)

UserForm.js

const App = (props) => {
    return (
        <div>
            <UserForm />
            <FlexGrid>
                {props.testStore.persons.map((data, index) =>
                    <PersonCard data={data} key={index} /> // <!-- This not changed
                )}
            </FlexGrid>
        </div>
    );
}

export default connect(
    state => ({
        testStore: state
    }),
    dispatch => ({})
)(App);

如何解决?

1 个答案:

答案 0 :(得分:1)

你在减速器中改变你的状态。你需要让你的状态像这样保持不变

function storeChangeHandler(state = stateInit, change) { 
  if (change.type === 'ADD_USER') {
    return{
       ...state,
       persons: [...state.persons, change.data]
    };
  } 
  return state;
}