Реагировать: сброс const

#reactjs

#reactjs

Вопрос:

Я пытаюсь выполнить сброс следующего const:

 const [description, setDescription] = useState(''); 
  

это содержится в дочернем компоненте с именем UploadForm .

Переменная должна быть сброшена, когда следующая константа в родительском компоненте с именем Upload пуста:

 const [partner, setDropDownPartner] = useState('');
  

изменение const-партнера в родительском компоненте обрабатывается обработчиком событий.

К сожалению, я не могу выполнить сброс в этом сценарии.

Я попытался использовать useEffect и привязать его к логической переменной в дочернем компоненте, но это работает только в первый раз:

 useEffect(() => {
    
    if(resetUpload) setDescription(''); setFileToUpload();     
 
 }, [resetUpload]);
  

Можете ли вы указать мне правильное решение?

Ответ №1:

Вы хотите выполнять проверку пустоты всякий partner раз, когда изменяется состояние.

 useEffect(() => {
  if (partner === '') {
    setDescription('');
  },
  [partner]
);
  

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

1. проблема в том, что описание const определено в родительском. Я попробовал ваш код, но он выдает следующую ошибку: ./src/Page/UploadJson.js Строка 55:9: ‘setDescription’ не определено no-undef

2. @OuterSpace Предполагается, что этот код должен находиться в UploadForm компоненте. Вы можете передать partner prop от parent ( Upload ) дочернему элементу, используя этот синтаксис: <UploadForm partner={partner} /> . В UploadForm вы определяете prop с именем partner и используете его как зависимость там.