【发布时间】:2020-01-09 22:49:03
【问题描述】:
在线演示:codesandbox.io
将react 与semantic-ui 一起使用
说明
我制作了一个名为Alert 的组件包含semantic-ui modal,我在单击页面中的按钮时调用此模式,此模式包含input,它有两个handler,两者似乎都有效,因为我使用console.log 进行调试,所以它在后台工作但不显示更改,最好说state 更改后直到我关闭modal 并再次打开才会显示。
代码查看:
当我点击按钮时,通过这个处理程序调用模态:
this.state = {
...
amount: 50000
}
Increase = (e) => {
let Html = (<div><Input value={this.state.amount} onChange={this.handleChange} onBlur={this.handleBlur}/></div>)
let obj = {
size: 'tiny',
content: Html,
}
this.setState({
alertOpen: true,
alert: obj
})
}
如您所见,它有两个处理程序,onChange 和 onBlur;现在模态已打开,值为50000(它设置为默认状态),我想更改输入值,但它不会更改,不可编辑,但在控制台中返回更改的值,现在如果我关闭modal 和再次打开,它显示出新的价值。 onblur 也一样。
handleChange = (e) => {
let v = e.target.value;
console.log(v)
this.setState({
amount: v
})
}
handleBlur = (e) => {
let v = e.target.value;
console.log(v)
if(v < 50000){
this.setState({
errorMessagePrice: 'Error message!',
amount: 50000
})
}
}
我的看法:
我认为这是因为我试图在另一个组件中更新 state(警报),如果我是对的,我该如何解决这个问题?
【问题讨论】:
标签: javascript reactjs