Данные создателя действий не синхронизируются правильно - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть создатель действий, использующий Redx Thunk, и я получаю что-то странное, происходящее

, беру этот код:

export const updateShowing = name => {
    return (dispatch, getState) => {
        console.log(getState().codeToRender.contents, 'first consolelog')
        const paramFound = getState().codeToRender.contents.find(param => param.name === name)
        console.log(paramFound, 'second consolelog')
        dispatch({ type: UPDATE_SHOWING, name })
        dispatch(push(`?${updateParamHelper(getState)}`))
    }
}

, когда я заглядываю в первый console.log, яполучить объект с ключом, который я ищу render: true

, но второй console.log (где все, что я делаю, это найти в том же массиве), я получаю render: false значение вв тот же момент времени по какой-то причине я вижу 2 разных значения, даже если я получаю доступ к одному и тому же getState

есть идеи, почему это произойдет?

1 Ответ

0 голосов
/ 28 февраля 2019

UPDATE_SHOWING или другой обработчик действия должен находиться в состоянии изменения.Ваши console.logs выглядят по-разному, потому что один, вероятно, показывает элемент как есть, когда он был зарегистрирован, а другой показывает его как есть, когда вы разворачиваете консоль.

Попробуйте запустить в консоли следующее:

const arr = [{name:'Ben'}];
console.log('expand and name is Jerry',arr);
console.log('as is when logged:',arr[0]);
arr[0].name='Jerry';

пример вывода:

expand and name is Jerry  ▼[{…}]
                            ▶ 0:{name: "Jerry"}
                              length: 1
                            ▶ __proto__: Array(0)
as is when logged: {name: "Ben"}

Вы можете изменить свои console.logs на:

console.log(JSON.stringify(getState().codeToRender.contents,undefined,2), 'first consolelog');

И вы, вероятно, обнаружите, что первый и второй журналы консоли будут регистрироватьто же самое.

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