Добро пожаловать в stackoverflow.React - удивительный инструмент для разработки сайтов.Уникальным для React является понятие, называемое «состояние», которое по сути то, что вы ищете.«Состояние» - это способность React отслеживать данные и использовать их соответствующим образом.В вашем случае вы хотите записать, что пользователь отправляет в ваш дочерний компонент.
Давайте рассмотрим следующий код:
class Parent extends React.Component{
//define state here which is typically an empty object
state = {
text: ""
}
//this is an event handler we have set up to take the data from state
handleOnSubmit = () => {
event.prevent.default() //stops page from refreshing
console.log(this.state.text)
}
//event handler that is triggered every time a user makes a change to the input
handleOnChange = (event) => {
//unique method in React that lets you update the component state
this.setState({
text: event.target.value
})
}
//all class-based components are called with render
render(){
return(
//we can pass down event handlers/functions we've defined into child components.
<Child handleOnChange={this.handleOnChange} handleOnSubmit={this.handleOnSubmit}/>
)
}
}
Теперь для нашего дочернего компонента
//this is known as a stateless-functional component. no need to keep track of state.
const Child = (props) => {
return(
<form onSubmit={props.handleOnSubmit}>
//onChange is a unique-event listener that gets called anytime characters changes inside an input tag. So in this case we update our Parent's state every time we type.
<input onChange={props.handleOnChange} name="text" />
</form>
)
}
Итак, краткое изложение этого на высоком уровне.Мы устанавливаем родительский компонент и определяем внутри него функции, которые помогут отслеживать «состояние» или данные.Затем мы передаем эти функции как свойства нашему дочернему компоненту.Наш дочерний компонент использует эти функции, и когда они вызываются, они обновляют состояние в нашем родительском компоненте.Таким образом, вы получаете поток контролируемого ввода, где вы постоянно отслеживаете данные, поступающие в ваши формы.