У меня трудное время с компонентом, и я надеюсь, что вы, ребята, поможете мне. Итак, я создал пользовательский компонент, который возвращает отформатированное значение того, что пользователь вводил во вход (если пользователь напечатал «1999-9-9», он возвращает «1999-09-09 00:00»), а значение присваивается состоянию родителя (handleCustomInputValueChange). Теперь проблема заключается в том, что если я нажму на «числовой» тип, и я заполню ввод случайными символами, сохраните его и перейдите в «datetime», вход остается неизменным, он не сбрасывается или не работает, t получить данные из реквизита. Он имеет старое значение из «числа». Использование метода componentWillReceiveProps() во многих случаях было бы ответом на эту проблему, но не здесь, потому что все, что я хочу, - это отправить данные родителям. Мне не нужны эти данные для отправки обратно в мой «CustomInput».React - Reset компонентный вход
Родитель компонент:
handleCustomInputValueChange(changeEvent) {
this.setState({value: changeEvent});
}
...
switch(type) {
case 'NUMERIC':
return <CustomInput data={value} type="numeric" callbackParent={handleCustomInputValueChange} />
break;
case 'DATETIME':
return <CustomInput data={value} type="datetime" callbackParent={handleCustomInputValueChange} />
break;
}
Детский компонент
export default class CustomInput extends Component {
constructor(props) {
super();
this.state = {
value: props.data || ''
}
}
handleChange(event) {
/* formatting data */
callbackParent(formattedData);
}
render() {
return <input type="text" onChange={this.handleChange} value={this.state.value} />;
}
}
Так .. есть ли способ сбросить вход после переключения на другой тип?
Спасибо!
вы можете использовать 'onBlur' событие для сброса ввода. Событие 'onBlur' будет запущено при вводе свободного фокуса. – Valour