我有一些代碼,如下是什麼使用返回功能,調用該函數
var React = require('react');
var Controls = React.createClass({
propTypes: {
countdownStatus: React.PropTypes.string.isRequired,
onStatusChange: React.PropTypes.func.isRequired
},
onStatusChange(newStatus) {
return()=>{
this.props.onStatusChange(newStatus);
}
// this.props.onStatusChange(newStatus);
},
render() {
var {countdownStatus} = this.props;
var renderStartStopButton =()=>{
if(countdownStatus == 'started') {
return (
<button className="button secondary"
onClick={this.onStatusChange('paused')}
>Pause</button>
)
} else if(countdownStatus == 'paused') {
return (
<button className="button primary"
onClick={this.onStatusChange('started')}
>Start</button>
)
}
}
return(
<div className="controls">
{renderStartStopButton()}
<button className="button alert hollow"
onClick={this.onStatusChange('stopped')}
>Clear</button>
</div>
)
}
})
module.exports = Controls;
我的問題是在onStatusChange(NEWSTATUS)的功能的不同,這將是錯誤的,使用其他的註釋語句比返回一個匿名函數。但是我無法得到返回函數和直接調用函數的區別。
任何人都可以請幫助解釋的區別?非常感謝你!
看到這個https://stackoverflow.com/questions/41688366/react-what-is-this-arrow-function-doing-in-the-props-for-tic-tac-toe-game/41688664#41688664 –
感謝Shubham,現在的工作 –