繁体   English   中英

react + redux:存储状态已更改,而视图未更改

[英]react+redux: state of store changed without view changing

我尝试使用react-redux 按照教程中的说明使用connect 我有2个带有export default connect(...)(...) 在一个模块中调度时,dev-tools会显示变化中的状态和新状态,但另一个模块的视图不会更改。

App.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);

UserForm.js

const UserForm = (props) => {
    let nameInput, familyInput, patronymicInput;

    const addUser = () => {
        props.addUser({
            name: nameInput.value,
            family: familyInput.value,
            patronymic: patronymicInput.value
        });
    }

    return (...);
}

export default connect(
    state => ({
        testStore: state
    }),
    dispatch => ({
        addUser: (data) => {
            dispatch({ type: 'ADD_USER', data});
        }
    })
)(UserForm);

如何解决?

您正在简化reducer中的状态。 您需要像这样保持状态不变

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM