【发布时间】:2023-03-10 03:13:01
【问题描述】:
我开始学习 JS 的基础知识并写了一个小例子来检查按钮在 React 中是如何使用 JSX 工作的,但我觉得这有点令人困惑。
我首先创建一个 React 组件并在构造函数中初始化一个名为 bar 的变量,其值为 'bar'。
我希望在按下按钮时将此值更改为 'baz'。
我的代码如下所示:
<div id="root"></div>
<script type="text/babel">
class Foo extends React.Component {
constructor(props) {
super(props);
this.bar = 'bar'
}
baz(){
this.bar = 'baz'
}
render() {
return (
<div>
<button onClick={this.baz()}>baz</button>
<p>{this.bar}</p>
</div>
);
}
}
ReactDOM.render(
<Foo />,
document.getElementById('root')
);
</script>
与我的预期相反,当我在浏览器中加载包含此代码的页面时,会立即显示值 'baz'。
很抱歉问了一个可能非常新手的问题,但我不明白为什么会立即显示'baz',而不是在我按下按钮后才显示。感谢您的时间。 :)
【问题讨论】:
-
我想,你想要
onClick={() => this.baz()}? -
@HoldOffHunger 为什么要使用不必要的 IIFE?这个想法是将函数作为值传递给属性
-
@RafaelHovsepyan:它似乎适用于这种变化。我发布了一个带有代码沙箱的答案。
标签: javascript reactjs jsx