为了账号安全,请及时绑定邮箱和手机立即绑定

在反应 (JSX) 中编写多行

在反应 (JSX) 中编写多行

隔江千里 2022-09-29 17:27:22
我正在制作一个非常简单的反应组件“点击器”,呈现给App。它就是一个H1,在单击按钮时生成的2后面有一个随机数。我希望它显示获胜者,如果选择的数字是7。我无法弄清楚为什么我的if语句在这种情况下不起作用。我以前写过三元,如果在这里,没关系,我一定错过了一些小东西才能不起作用?谢谢import React, { Component } from 'react';class Clicker extends Component {    constructor(props){        let num = Math.floor(Math.random() * 10);        super(props);        this.state = { num: num };        this.handleClick = this.handleClick.bind(this);    }    handleClick(e) {        this.setState({winner:0});    }    render() {        let num = Math.floor(Math.random() * 10);        return(         <div>        <h1>Number is {num}</h1>        <button onClick={this.handleClick}>Random Number</button>        if (this.state.num === 7) {            <h2>Winner!</h2>        }         </div>           );    }}[website render][1]export default Clicker;
查看完整描述

3 回答

?
开心每一天1111

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>   

    );


查看完整回答
反对 回复 2022-09-29
?
慕村9548890

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>) : ""}


查看完整回答
反对 回复 2022-09-29
?
HUWWW

TA贡献1874条经验 获得超12个赞

你需要把你的内牙套甚至更好if

{this.state.num === 7 && <h2>Winner!</h2>}


查看完整回答
反对 回复 2022-09-29
  • 3 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信