当前位置: 首页 > 知识库问答 >
问题:

如何在reactnative中编写if语句,在react钩子中编写if语句?

万浩淼
2023-03-14

我有两个问题。

①当useState初始值真假时,if语句如何适应下面?

const [ goodbotton, setGoodBotton ] = useState(<Image source={require('../../images/good_botton_inactive.png')} style={ {width: 65, height: 65} }/>);

比如说。。

const [ goodbotton, setGoodBotton ] = useState(<Image movie?.is_my_good ? source={require('../../images/good_botton_inactive.png')} style={ {width: 65, height: 65} } : source={require('../../images/not_good_botton_inactive.png')} style={ {width: 65, height: 65} } />);

②当if语句为true和false时,如何使setGoodBotton从React钩子和if语句适应下面?

<TouchableOpacity
      onPress={() => {
        if (movie.is_my_good) {
          postGood(movie.id, false)
        } else {
          postGood(movie.id, true)
        }}>
      <View style={[commonStyles.shadow]} > {/*here!!!!*/}
      </View>
</TouchableOpacity>

例如…(这不是工作)

if (movie.is_my_good) {
   setGoodBotton(<View style={[commonStyles.shadow]} >)
} else {
   setGoodBotton(<View style={[uncommonStyles.shadow]} >)
}

共有1个答案

史洛城
2023-03-14

您试图有条件地渲染不同的图像,因此您的状态仅为您的图像。

const initialImage = movie?.is_my_good ? 'good_botton_inactive.png' : 'not_good_botton_inactive.png';
const [image, setImage] = useState(initialImage);

然后,您可以使用您的组件,如下所示

<Image source={require(`../../images/${image}`)} style={{ width:65, height:65 }} />

您可以将条件用作函数参数。

<TouchableOpacity onPress={() => postGood(movie.id, !movie.is_my_good)}>
  <View style={[commonStyles.shadow]} />
</TouchableOpacity>

来回答你问题的最后一部分

const style = movie.is_my_good ? [commonStyles.shadow] : [uncommonstyles.shadow];
setGoodBotton(<View style={style} >)
 类似资料:
  • 问题内容: 如何在MySQL查询中编写IF ELSE语句? 像这样: 然后在我的数组中,我应该能够做到这一点: 问题答案: 您可能要使用表达式。 他们看起来像这样:

  • 问题内容: 如何在JavaScript中使用内联语句?是否也有内联语句? 像这样: 问题答案: 您不一定需要jQuery。仅JavaScript就能做到这一点。 该变量将是如果该值,并且如果该值是。 这称为条件(三元)运算符。

  • 问题内容: 我在Robot Framework中编写条件时遇到麻烦。 我要执行 我可以在一个条件下使用此关键字,但是在多个条件下,出现此错误: 失败:关键字名称不能为空。 我也想使用这些关键字: 和 但是我最终会遇到错误。 问题答案: 您应该使用小写字母“ or”和“ and”,而不是OR和AND。 并且要注意关键字和参数之间的空格/制表符(您至少需要两个空格)。 这是一个代码示例,您的三个关键字

  • 问题内容: 当前的工作需要我编写一个程序,以非常小的基本编程语言(行为类似于FORTRAN)读取包含指令的文件,并执行这些指令。基本上,这是我猜语言的简单解释器。它是完全线性的,所有语句都是按顺序定义的,并且只有String和integer变量。我需要找到并定义它们是否在源文件中存在8个关键字和4个算术运算符,并且每一行必须以保留字之一开头。使用这种语言的程序可能看起来像这样: 我可以使用切换块而

  • 是否可以在x86汇编语言中模拟if-statment(使用masm语法)?我想在x86汇编语言中做这样的事情,但我不确定应该使用哪个运算符来模拟if-ore语句。我应该使用指令,还是指令,还是其他指令?