React.js 一个函数中两个不同输入的双向绑定
React.js two-way binding for two different inputs in one function
我可以在一个函数中为两个不同的输入进行双向绑定吗?
为了绑定:
<Input placeholder='title...' onChange={this.handelChangetitle.bind(this)} />
<textarea className='textarea' onChange={this.handelChangecontent.bind(this)}>d</textarea>
至:<p>Blog title:{this.state.title}</p>
<p>Blog content:{this.state.content}</p>
我需要两个非常相似的函数:
handelChangetitle(event){this.setState({title:event.target.value})}
handelChangecontent(event){this.setState({content:event.target.value})}
有什么方法可以节省一些代码,只使用一个函数但同时绑定 'title' 和 'content'?
向输入添加名称属性
<input
name="title"
onChange={this.handleInputChange}
value={this.state.title}
/>
<textarea
name="content"
onChange={this.handleInputChange}
value={this.state.content}
/>
然后您将能够在您的处理程序函数中检索它
handleInputChange = (event) => {
const { name, value } = event.target
this.setState({ [name]: value })
}
您可以像这样创建一个函数:
handleChange = (e) => {
this.setState({ [e.target.name]: e.target.value });
}
然后为您的 input 和 textArea 标签添加一个名称属性,如下所示:
<Input name='title' placeholder='title...' onChange={this.handleChange} />
<textarea name='content' className='textarea' onChange={this.handleChange}>d</textarea>
我可以在一个函数中为两个不同的输入进行双向绑定吗?
为了绑定:
<Input placeholder='title...' onChange={this.handelChangetitle.bind(this)} />
<textarea className='textarea' onChange={this.handelChangecontent.bind(this)}>d</textarea>
至:<p>Blog title:{this.state.title}</p>
<p>Blog content:{this.state.content}</p>
我需要两个非常相似的函数:
handelChangetitle(event){this.setState({title:event.target.value})}
handelChangecontent(event){this.setState({content:event.target.value})}
有什么方法可以节省一些代码,只使用一个函数但同时绑定 'title' 和 'content'?
向输入添加名称属性
<input
name="title"
onChange={this.handleInputChange}
value={this.state.title}
/>
<textarea
name="content"
onChange={this.handleInputChange}
value={this.state.content}
/>
然后您将能够在您的处理程序函数中检索它
handleInputChange = (event) => {
const { name, value } = event.target
this.setState({ [name]: value })
}
您可以像这样创建一个函数:
handleChange = (e) => {
this.setState({ [e.target.name]: e.target.value });
}
然后为您的 input 和 textArea 标签添加一个名称属性,如下所示:
<Input name='title' placeholder='title...' onChange={this.handleChange} />
<textarea name='content' className='textarea' onChange={this.handleChange}>d</textarea>