Реакция: Как использовать функции обновления с setState при удалении элементов
Я пытаюсь вызвать метод удаления с помощью функции обновления. Я делаю это, потому что рекомендуется использовать функции Updater (особенно с Fiber и когда выйдет новый API ожидания, см. Здесь), когда вы изменяете состояние на основе предыдущего состояния.
Вот моя функция обновления:
deleteFish = key => {
const fishes = { ...this.state.fishes };
fishes[key] = null;
this.setState((state, props) => ({ fishes }));
};
который, к сожалению, ломает приложение с этой ошибкой:
Fish.js:8 Uncaught TypeError: Cannot read property 'image' of null
"Старый" способ обновления состояния не приводит к сбою приложения:
deleteFish = key => {
const fishes = { ...this.state.fishes };
fishes[key] = null;
this.setState({ fishes });
};
Как я могу удалить свой объект, используя функции обновления без сбоя React?
Я нашел обходной путь, вызвав пустой возврат для каждой функции рендеринга следующим образом:
if(!this.props.details) return <div />
Но это кажется очень утомительным для каждого компонента...