Значение onChange не отображается?

#reactjs #expo

#реагирует на #Экспо

Вопрос:

Я изучаю onChange и хочу отобразить текст, который я записываю в «testInput», чтобы он отображался как текущий вводимый текст — что я здесь делаю не так?

 const Start = () =gt; {  const [Input, setInput] = useState("")  function handleChange(event) {  setInput(event.target.value) }   return ( lt;View style= {styles.mainContainer}gt;  lt;Header/gt;   lt;Text style={{fontSize: 30}}gt;This is:{Input}lt;/Textgt;   lt;TextInput   style={styles.goalInput}   title="Add goal"  value={Input}  onChange={handleChange}/gt;  lt;/Viewgt;  )}   

Ответ №1:

Я думаю, что это должен быть TextInput вместо TestInput, а также у вас отсутствует атрибут значения. Надеюсь, что это вам поможет.

 lt;TextInput title="Add Test"  onChange={(e) =gt; {setCurrentInput (e.target.value)}} value={currentInput} /gt;  

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

1. Спасибо за ваш ответ, TestInput-это компонент, который включает в себя текстовый ввод, хе-хе, я попробовал значение, но оно все еще не работает 🙁

2. Если это компонент, то вы просто передаете опору в свой компонент. Теперь вам нужно перейти к компоненту TestInput и добавить onChange={props.onChange} и value={props.value} в TextInput.

3. Я пробовал это, но это не работает, когда я ставлю «console.log(событие.цель.значение)» и пишу в textinput, он просто выходит из системы «неопределенно» вместо букв, которые я набираю, вам это о чем-нибудь говорит?

4. Не могли бы вы поделиться кодом компонента TestInput, чтобы я мог помочь разобраться в проблеме.

5. Я обновил код в верхней части, пожалуйста, проверьте его! превратил его в текстовый ввод, чтобы упростить код без пользовательского компонента

Ответ №2:

 lt;TestInput title="Add Test"  onChange={(e) =gt; {setCurrentInput (e.target.value)}}  value={currentInput}  /gt;  

Вы должны также добавить опору значения во входные данные, вот как она будет обновляться во входных данных, передавая значение в виде текста, который вы добавляете в вашем случае, когда вы устанавливаете состояние текущего ввода, поэтому значение={Текущий ввод}

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

1. Ах, хорошо, спасибо, я добавил значение, но текст все еще не отображается :/ может быть, я что-то еще пропустил?

2. Нет, добавления значения в TestInput должно быть достаточно, если вы сделали TestInput своим пользовательским компонентом, не забудьте добавить значение и изменить опору в компоненте TestInput.

3. Я пробовал это, но это не работает, когда я ставлю «console.log(событие.цель.значение)» и пишу в textinput, он просто выходит из системы «неопределенно» вместо букв, которые я набираю, вам это о чем-нибудь говорит?

4. Обновленный код должен работать сейчас, он работает сейчас, верно?