You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native输入密码触发TypeError:期望布尔类型却获对象类型

解决React Native中TouchableOpacity disabled属性引发的TypeError

开发时出现错误:

Exception in HostFunction: TypeError: expected dynamic type 'boolean', but had type 'object'

触发场景:密码输入框输入特殊字符后再输入数字时程序崩溃。

错误原因

问题出在TouchableOpacity的disabled属性配置上:代码中使用了{loading},这会传递一个对象类型的值给disabled属性,但React Native要求该属性必须是布尔类型,类型不匹配直接导致了崩溃。

修正方案

将disabled属性中的{loading}改为布尔变量loading即可。

修正后的代码片段

<TextInput
    style={styles.input}
    placeholder='Password'
    value={password}
    secureTextEntry={true}
    onChangeText={(value) => setPassword(value)}
/>

<TouchableOpacity 
    style={[
        {backgroundColor:"black", borderRadius: 5},
        (email.length===0 || password.length<7) && {opacity:.5}
    ]} 
    disabled={email.length===0 || password.length<7 || loading}
    onPress={() => signInWithEmail()}  
>
    <Text style={{color:"white", padding:10, textAlign:"center"}}>Login</Text>
</TouchableOpacity>

内容的提问来源于stack exchange,提问作者Adboy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 19:02:37