我正在尝试将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)
我怎样才能做到这一点?非常感谢。
答案 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>