Перерисовка компонента при изменении состояния в ReactJS

#reactjs #typescript

Вопрос:

У меня есть состояние, которое связано с некоторыми типами входных данных:

  const [unit, setUnit] = useState('1');
 const [value, setValue] = useState('1');
 

Я передаю их в качестве реквизита для функционального компонента, подобного этому:

 <ComponentButton props={[unit, value]} />
 

Это, в свою очередь, вызывает нижестоящие асинхронные вызовы API к серверам для выполнения. Я хотел бы повторно отображать этот компонент кнопки(который является функциональным) каждый раз при изменении состояния. В настоящее время он просто отображает первые значения или значения по умолчанию, где в идеале он должен динамически извлекать значения из входных данных в состояние.

Если у вас есть лучший подход, пожалуйста, предложите.

Комментарии:

1. вам необходимо обновить значение состояния с помощью setUnit или setValue, это вызовет повторную визуализацию

Ответ №1:

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

Я бы предложил передать государство в качестве отдельного реквизита.

Пример:

 <ComponentButton unit={unit} value={value} />