React native react本机函数始终返回true

React native react本机函数始终返回true,react-native,React Native,在我的应用程序中,我希望有条件地禁用图标。这是我的密码 <View style={styles.controlsContainer}> <WorkoutProgressControls videoPaused={this.state.videoPaused} onPrevious={() => alert("PREVIOUS MOVEM

在我的应用程序中,我希望有条件地禁用图标。这是我的密码

<View style={styles.controlsContainer}>
                    <WorkoutProgressControls 
                        videoPaused={this.state.videoPaused}
                        onPrevious={() => alert("PREVIOUS MOVEMENT")}
                        onPause={() => this._onPauseVideo()}
                        onNext={() => this.getNextMovement()}
                        disableNext={() => 1 === 1 ? false : true}
                    />
                </View> 

警报(“上一次移动”)}
onPause={()=>这一点。_onPauseVideo()}
onNext={()=>this.getNextMovement()}
disableNext={()=>1==1?false:true}
/>
当我将DisableText设置为true或false时,它可以正常工作。但当我试图有条件地更改它或使用函数时,它总是被禁用

这是我设置disableNext道具的组件

 <DisableableIcon
                iconStyles={styles.icon}
                resizeMode="contain"
                source={Next}
                height={35}
                width={35}
                disabled={props.disableNext}
                onIconPressed={props.onNext}
            />


这里的问题是什么?当我将DisableText设置为true和false时,为什么这会起作用,但当我尝试有条件地设置它时,总是返回true?

您试图将函数作为道具传递,因此,要使它起作用,要么不使用函数,要么将其作为组件中的函数调用

...
disableNext={() => 1 === 1 ? false : true}
...

...
disabled={props.disableNext()}
...

...
disableNext={1 === 1 ? false : true}
...

...
disabled={props.disableNext}
...

不需要进行很多操作,但基于上面的代码,
disableNext
需要一个函数。我想,
props.disableNext
不是一个函数,可能是函数过早求值的结果。尝试
console.log(props.disableNext)
以查看是否得到类似
[函数]
的值或实际的布尔值。