【发布时间】:2016-03-01 00:41:46
【问题描述】:
我正试图围绕功能组件和绑定。
如果我有一个看起来像这样的功能性 React 组件:
const Dashboard = props => {
const _dashboard = new _Dashboard()
return (
<div>
<div className="title">Dashboard</div>
<button>Log</button>
</div>
)
}
还有一个看起来像这样的类:
class _Dashboard {
constructor() { }
log() {
console.log('Dashboard Log Clicked!')
}
}
绑定按钮点击的正确方法是什么?
这是我尝试过的,但不起作用
const Dashboard = props => {
const _dashboard = new _Dashboard()
return (
<div>
<div className="title">Dashboard</div>
<button onClick={ _dashboard.log }>Log</button>
</div>
)
}
但我觉得我在它的一般工作方式上遗漏了一些东西。
编辑:我从 log() 调用中删除了括号。两种方式都不会向控制台写入任何内容。
【问题讨论】:
-
您能在开发工具中检查 _dashboard 的值吗? (行:)
-
看起来 _dashboard 并没有被实例化。将
console.log('test')添加到_Dashboard 类永远不会被调用 -
试试这个._dashboard?还有 console.log('test');如果你想看的话,IMO 应该在类的 componentWillMount() 或 componentDidMount() 上。顺便说一句,您是否遇到任何控制台错误?
-
顺便说一句;尝试用 "替换你的行: "" >” 。如果这没有运行,那么您的问题与正确绑定按钮 onClick 事件不同。
-
好的,看起来还有其他事情发生,因为
<button onClick={ () => { console.log('test'); } }>Log</button>也没有做任何事情。回到绘图板。哈哈。最奇怪的是没有错误。一切都很好。
标签: javascript reactjs ecmascript-6