gpt4 book ai didi

javascript - React checkbutton onChange 事件返回合成事件

转载 作者:行者123 更新时间:2023-11-30 13:55:29 35 4
gpt4 key购买 nike

我有一个 React 复选框组件。我试图在每次点击时更改状态并根据之前的状态运行一个函数。在 React 上,每次单击按钮时,我都试图将事件返回到 index.js 中的 console.log 函数。

但它总是返回合成事件,我无法达到 event.target.value。

我的 index.js 和 props 是;

ReactDOM.render(<ReactCheckBox
isChecked={false}
textCheck="Checked"
textUncheck="Checked"
onCheckedRun={event => console.log(event.target)}
onUncheckedRun={event => console.log(event.target)}
buttonPosition="right"
/>, document.getElementById('myCheckBox'))

我的 ReactCheckBox 组件是;

import React, { Component } from 'react'

class ReactCheckBox extends Component {
constructor(props) {
super(props)
this.state = {
checked: ""
}
this.onChangeHandler = this.onChangeHandler.bind(this)

}
componentDidMount() {
this.setState({
checked: this.props.isChecked
})
}

onChangeHandler(event) {
this.setState(function (previousState, props) {
console.log('State: ',this.state.checked)
if (previousState.checked === true) {
props.onCheckedRun(event)
} else {
props.onUncheckedRun(event)
}
return {
checked: !this.state.checked
}
}
)
}

render() {
if (this.props.disabled === "true") {
return (
<div>
<div className="form-check">
<label className="form-check-label">
<div className="uniform-checker border-primary-600 text-primary-800">
<span className="checked">
<input onChange={this.onChangeHandler} type="checkbox" className="form-check-input-styled-primary" defaultChecked={this.state.checked ? 'checked' : 'unchecked'} data-fouc="" disabled></input>
</span>
</div>
Primary checkbox
</label>
</div>
</div>

)
}
else {
return (
<div>
<div>
<div className="form-check">
<label className="form-check-label">
<div className="uniform-checker border-primary-600 text-primary-800">
<span className={this.state.checked ? 'checked' : 'unchecked'}>
<input onChange={this.onChangeHandler} type="checkbox" className="form-check-input-styled-primary" defaultChecked={this.state.checked ? 'checked' : 'unchecked'} ></input>
</span>
</div>
Primary checkbox
</label>
</div>
</div>
</div>
)
}
}
}

export default ReactCheckBox

有人遇到过同样的问题吗?我怎样才能克服合成事件并获得真实事件,以便实现它的值(value)?

更新

综合错误事件

index.js:1375 Warning: This synthetic event is reused for performance reasons. If you're seeing this, you're accessing the method currentTarget on a released/nullified synthetic event. This is a no-op function. If you must keep the original synthetic event around, use event.persist(). See fb.me/react-event-pooling for more information.

最佳答案

而不是 event.target尝试 event.currentTarget获取特定的目标元素。

更新:关于您的更新和错误,您可以尝试这样做:而不是使用 <input onChange={this.onChangeHandler}>这样做:

<input onChange={(e)=>{this.onChangeHandler(e)}}>

或者只是:

<input onChange={(e)=>{onchangeHandler(e)}}>

所以整行是:

<input onChange={()=>{this.onChangeHandler(e)}} type="checkbox" className="form-check-input-styled-primary" defaultChecked={this.state.checked ? 'checked' : 'unchecked'} ></input>

关于javascript - React checkbutton onChange 事件返回合成事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57383508/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com