我猜罪魁祸首在于:
onclick={this.onUpdateClient.bind(this)}
这个位有一些问题:
onClick
onclick
onUpdateClient
所以我建议2个可能的修复:
class UserProfile extends Component { constructor(props){ super(props); this.onUpdateClient = this.onUpdateClient.bind(this); } onUpdateClient(){ // Your code here } render() { return ( <div> <Button onClick={this.onUpdateClient}> Update Profile </Button> </div> ); } }
要么
class UserProfile extends Component { onUpdateClient(){ // Your code here } render() { return ( <div> <Button onClick={this.onUpdateClient.bind(this)}> Update Profile </Button> </div> ); } }
的 编辑: 强> 第一个修复更为可取,因为事件处理程序可以在渲染中重复使用,因此可以为您的应用提供小的性能提升(取决于组件的实际成本)。第二种方法在每次重新渲染组件时都会创建一个新函数,从长远来看,这会明显减慢您的应用程序的速度
忘了提一下,如果安装了JS转换器,这种语法也是可能的:
class UserProfile extends Component { onUpdateClient = () => { // Your code here } render() { return ( <div> <Button onClick={this.onUpdateClient}> Update Profile </Button> </div> ); } }
看起来不错,整洁不是吗? :)
如需进一步参考,请访问 反应文档