爲什麼反應設置onClick回調三個參數?React,onClick回調參數
nativeEvent
可以通過proxyEvent.nativeEvent
得到。爲什麼在第三個參數中使用set nativeEvent
。
如果我點擊按鈕,console.log(args)
給我Proxy, undefined, Event
,第三個參數不是我想要的。
但在componentDidMount
,請致電this.clickHandler
,它給我null, null, 'b2c'
,第三個參數'b2c',這就是我想要的。
class ReactEventArgument extends React.Component{
componentDidMount() {
this.clickHandler(null, null, 'b2c');
}
render() {
return <div>
<Child clickHandler={this.clickHandler}></Child>
</div>
}
clickHandler = (e, v, type = 'b2c') => {
console.log(Array.prototype.slice.call(arguments));
console.log(e, v, type);
//if I click the button, I get a wrong type, type is nativeEvent, not my argument.
}
}
class Child extends React.Component{
render() {
const {clickHandler} = this.props;
return <div>
<button type="button" onClick={clickHandler}>click me</button>
</div>
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
我不得不改變button
這樣的:
<button type="button" onClick={e => clickHandler(e, null, undefined)}>click me too</button>
感謝答覆。我知道'doc'。我的問題是有三個默認參數傳入事件回調。 'ProxyEvent','undefined','nativeEvent'。如果我使用第三個參數,可能會導致錯誤。默認的第三個參數'nativeEvent'不是我所期望的。 – novaline