#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. Обновленный код должен работать сейчас, он работает сейчас, верно?