Реакция: Как использовать функции обновления с 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 />

Но это кажется очень утомительным для каждого компонента...

0 ответов

Другие вопросы по тегам