【发布时间】:2017-07-21 21:05:47
【问题描述】:
编辑:我不想仅在单击按钮时才调用 handleChange。它与handleClick 无关。我在@shubhakhatri 答案的评论中举了一个例子。
我想根据状态改变输入值,值在改变但不会触发handleChange()方法。如何触发handleChange() 方法?
class App extends React.Component {
constructor(props) {
super(props)
this.state = {
value: 'random text'
}
}
handleChange (e) {
console.log('handle change called')
}
handleClick () {
this.setState({value: 'another random text'})
}
render () {
return (
<div>
<input value={this.state.value} onChange={this.handleChange}/>
<button onClick={this.handleClick.bind(this)}>Change Input</button>
</div>
)
}
}
ReactDOM.render(<App />, document.getElementById('app'))
这里是codepen链接:http://codepen.io/madhurgarg71/pen/qrbLjp
【问题讨论】:
-
据我了解,您只想在单击按钮后更改输入。我说的对吗??
-
@ShubhamKhatri 抱歉,我错了,我不想在单击按钮后才更改。这只是handleClick 只是设置状态的示例。它与handleClick 无关。对不起,我解释错了。
-
你发现了吗?据我所知,上述脚本没有理由不工作,至少在最新的 React 版本中是这样。我刚刚在提供的 Codepen sn-p 中试了一下,效果很好。
-
您在 codepen 上的内容与此处显示的内容不同。这工作正常,绝对没有理由不工作。您可能想在控制台上检查“调用的处理更改”
-
应该使用功能组件
标签: javascript reactjs