根据状态设置onPress图标

时间:2017-09-13 17:02:03

标签: reactjs react-native ecmascript-6 react-redux

我正在尝试将onPress设置为调用action来调度图标,具体取决于Redux中的状态。

   <MaterialIcons
      name="arrow-upward" size={30} style={mystyles1.myIcon}
      onPress =  this.props.style.name === 'styleNormal' ? 
          {() => this.props.changeStyleNew('styleNew')} : 
          {()=>this.props.changeStyleNormal('styleNormal')}
    >
    </MaterialIcons>

因此,如果this.props.style.name === 'styleNormal'第一个函数(changeStyleNew)应该传递,如果不是第二个函数(changeStyleNormal)。我无法做到这一点。我收到了一个错误:

TransformError C:/.../ExtComp02.js: 
JSX value should be either an expression or a quoted JSX text (94:19)

我怎样才能做到这一点?非常感谢。

2 个答案:

答案 0 :(得分:1)

您需要将表达式保留在大括号"中,如下所示

{}

答案 1 :(得分:1)

您可以编写第3个函数并使用if语句。

<MaterialIcons
    name="arrow-upward" size={30} style={mystyles1.myIcon}
    onPress={ () => {
     if (this.props.style.name === 'styleNormal') this.props.changeStyleNew('styleNew');
     else this.props.changeStyleNormal('styleNormal');
    }}
>
</MaterialIcons>