Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以在react render中创建一个函数,该函数包含要设置状态的if语句_Javascript_Html_Reactjs_Jsx - Fatal编程技术网

Javascript 是否可以在react render中创建一个函数,该函数包含要设置状态的if语句

Javascript 是否可以在react render中创建一个函数,该函数包含要设置状态的if语句,javascript,html,reactjs,jsx,Javascript,Html,Reactjs,Jsx,因此,我的应用程序从defaultProps内部的数组中获取三个随机值,并在返回的JSX中显示这些内部div,并在状态中设置三个属性的值 我需要根据这些随机值的不同来更改状态(如果random1==random2 | | random2==random3)。我在主div中的console.logs中放置了三元运算符,它们输出的正是我想要的。但是,当我尝试在同一位置创建带有if-else语句的函数时,它不会更改状态。我想这是一个关于范围的问题 非常感谢您的帮助 这是我尝试使用的代码: this.s

因此,我的应用程序从defaultProps内部的数组中获取三个随机值,并在返回的JSX中显示这些内部div,并在状态中设置三个属性的值

我需要根据这些随机值的不同来更改状态(如果random1==random2 | | random2==random3)。我在主div中的console.logs中放置了三元运算符,它们输出的正是我想要的。但是,当我尝试在同一位置创建带有if-else语句的函数时,它不会更改状态。我想这是一个关于范围的问题

非常感谢您的帮助

这是我尝试使用的代码:

this.state = { 
    fruit1: "You can't do that inside render. You should make a function that returns true or false depending the state values.

const hasWon = () => {
    const { fruit1, fruit2 } = this.state;
    return fruit1 === fruit2;
}
this.state={

结果1:“您不能在render中执行此操作。您应该创建一个根据状态值返回true或false的函数

render (
    <div class="main-div">
      {this.hasWon() ? /* WON COMPONENT */ : /* LOOSE COMPONENT */}
    </div>
  )
然后在渲染中:

渲染(
{this.haswen()?/*WON COMPONENT*/:/*LOOSE COMPONENT*/}
)

谢谢你的回答,Jon。说清楚一点,如果果1===果2,Haswen会变得真实?所以在Haswen里面,我可以包含'Haswen?this.setState({win:true}):null'?对不起,我还在学习!没问题,Harry,每个人都学过React。是的,你可以这样做,但是,在渲染部分,你应该替换这个。Haswen()为了这个,州,赢。