#reactjs
#reactjs
Вопрос:
У меня есть текстовое поле в моей форме, в котором я хочу показать пустое поле текстового поля после отправки формы. В настоящее время он показывает введенный текст в текстовой области даже после отправки формы. Я действительно запутался, потому что форма работает в обоих компонентах (родительский-дочерний).
# Parent component
const examples = (props) => {
const [ data, setData ] = useState({});
const onSubmitHandler = (e) => {
e.preventDefault();
const content = data.content;
axios.post(
`....................`,
content,
config
)
.then((res) => setOthers(res.data.others))
return(
.....
.....
< Form onSubmit={onSubmitHandler} setData={setData} />)
что касается дочернего компонента
const Form = (props) => {
const [formData, setFormData] = useState({
content: '',
});
const { content } = formData;
const onChange = (e) =>{
e.preventDefault();
const name = e.target.name;
const value = e.target.value;
setFormData({ ...formData, [name]: value });
props.setData(data => ({ ...data, [name]: value }));
}
return (
<form onSubmit={props.onSubmit}>
<div className="col-12">
<textarea
className="form-control"
name="content"
value={content}
onChange={(e) => onChange(e)}
>
</textarea>
</div>
Я знаю, что мне нужно снова установить content: ‘ ‘ после отправки формы, но я не могу понять это.
Ответ №1:
handleSubmit=()=>{
content:''
props.onSubmit()
}
return (
<form onSubmit={handleSubmit}>
<div className="col-12">
<textarea
className="form-control"
name="content"
value={content}
onChange={(e) => onChange(e)}
>
</textarea>
</div>
просто установите для содержимого значение null с помощью функции и оттуда вызовите обработчик родительской функции.
Надеюсь, это решит
Комментарии:
1. Я не понял, почему <form onSubmit={ }> пусто, разве это не должно быть похоже на <form onSubmit={handleSubmit}> и является ли handleSubmit новой функцией со стрелкой
2. пожалуйста, проверьте это сейчас, я изменил ответ