правильное время для обновления массива в состоянии response-redux - PullRequest
0 голосов
/ 28 сентября 2019

Я только начал использовать реактив-редукс в приложениях реагирования, и единственный проект, который я сделал с помощью реактив-редукса, был простым средством извлечения и обновления json (и это также было основано на ускоренном курсе LOL), и теперь я создаю второе простое приложение, дажедумал, что он не нуждается в избыточности и будет отлично работать с реагировать.так что это слово / число экватора.Пользователь заполняет первый и второй входные данные и приложение определяет, равны они или нет, а затем добавляет уравнение в историю уравнений (предыдущие уравнения).так что моя проблема в том, что я не знаю, когда я должен обновить массив previous equations, в редукторе или в методе жизненного цикла (componentDidUpdate), в ускоренном курсе он обновился в методе жизненного цикла, но я прочитал, что это возможно в редуктореслишком.так что это лучшая практика

Это:

 export default function equateReducer(state = initialState, action) => {
     switch(action.type){
        case ADD_TO_EQUATIONS:
            return {
                ...state,
                equations: [...state, action.payload.equation]
            } 
     } 
 } 

или это

componentDidUpdate(nextProps){
    if(nextProps.equation){
       this.props.equations.unshift(nextProps.equation)
    }
}

PS: я действительно не знаю, как работает обновление в методе жизненного цикла (я имею в виду, какэто получает nextProps.equation)

1 Ответ

0 голосов
/ 29 сентября 2019

(одна из) идея (ы) Redux заключается в изменении состояния только через определенные действия

, поэтому вместо прямого .unshift над массивом уравнений (я полагаю, вы подключили его из mapDispatchToProps), вы должны отправлятьдействие для достижения того же результата (поэтому ваш ответ таков: первый вариант выглядит лучше)

, если вы считаете, что Redux избыточен для задачи, взгляните на хук useReducer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...