Задержка обновления реквизита при использовании React Hooks и Redux - PullRequest
0 голосов
/ 30 октября 2019

У меня есть компонент класса React, вид которого зависит от глобального состояния, которое называется props.filtered_table_data и хранится в Redux Store.

Я использую useReducer, чтобы применить фильтры к состоянию

const init_filter = { OWNER: '', TEAM: '' }

    const [filter, dispatch] = useReducer((state, action) => {
        switch (action.type) {
            case 'OWNER':
                return { ...state, OWNER: action.option }
            case 'TEAM':
                return { ...state, TEAM: action.option }
            case 'RESET':
                return init_filter
            default:
                return state
        }
    }, init_filter)

Эти фильтры применяются, когда я выбираю из выпадающего списка.

<Select
    className="select-filter"
    type="owner"
    onItemSelect={(optionItem) => { handleFilter('OWNER', optionItem); ; filterData()}}
>   
</Select>

И filterData()это функция, которая обрабатывает фильтрацию данных. Он создает новый массив, фильтрует данные на основе фильтра и обновляет его в конце, выполнив

props.filterTable(newArray)

filterTable - просто действие с избыточностью, которое обновляет props.filtered_table_data.

Фильтрация работает хорошо, но обновление имеет задержку. Когда я выбираю новый фильтр, предыдущий фильтр применяется к данным.

Как я могу исправить эту проблему?

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