3 回答
TA贡献1836条经验 获得超13个赞
您需要并围绕您的嵌入式 Java 脚本才能使其正常工作。这告诉 JSX 编译器即将出现一个表达式。 并且是返回右手值(如果左手值为 true)的运算符。{}&&??
<h1>Number is {num}</h1>
<button onClick={this.handleClick}>Random Number</button>
{(this.state.num === 7) && <h2>Winner!</h2>}
</div>
);
TA贡献1884条经验 获得超4个赞
渲染函数中的 将启动 JSX 块。<div>
JSX 中的所有内容都编译为 HTML,除非它位于内部,在这种情况下,它被视为 JavaScript 表达式。{ ... }
你没有把里面放进去(所以它被视为HTML中的文本),即使你这样做了,它也将是一个语句,而不是一个表达式,因此在那里是无效的。if{ ... }
如果要使用 ,则需要在 JSX 外部执行此操作,并使用 将结果放入 JSX:if{ ... }
let num = Math.floor(Math.random() * 10);
let winner = "";
if (this.state.num === 7) {
winner = (<h2>Winner!</h2>);
}
return (
<div>
<h1>Number is {num}</h1>
<button onClick={this.handleClick}>Random Number</button>
{winner}
</div>
);
如果你想内联使用它,那么你需要一个表达式,你需要把它放进去{ ... }
<button onClick={this.handleClick}>Random Number</button>
{this.state.num === 7 ? (<h2>Winner!</h2>) : ""}
添加回答
举报