未定义不是对象(正在评估this.state)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未定义不是对象(正在评估this.state)相关的知识,希望对你有一定的参考价值。

我是本机反应的新手,我想做的是设置按钮的动态属性。因此,从在线文档和大部分堆栈溢出信息中,我发现状态用于这些动态事物。

我的问题

我收到此错误“未定义不是对象(正在评估this.state)”。

我尝试过的

我还没有尝试过任何新的东西,只是看过docx和一些相关文章并介入其中。

我的代码

import NavigationContainer from '@react-navigation/native';
import createStackNavigator from '@react-navigation/stack'
const Stack = createStackNavigator();
class Hello extends React.Component 
        constructor(props: MyProps) 
          super(props);
          this.state = 
            disabled: false
          
        
        return (
          <Stack.Navigator>
            <Stack.Screen name="Register" component=Register options=headerShown:false />
          </Stack.Navigator>
    );


function Register(navigation) 
    return (
        <Button buttonStyle=styles.btnPrimary title="Register" disabled=this.state.disabled onPress=()=>this.setState(disabled: true)/>
    )

答案

您可以参考此link以获取解决方案

另一答案

将匿名函数传递给Stack.Screencomponent属性,该属性实例化您的<Register />组件,并将disabled状态值作为其自身的属性传递:

import NavigationContainer from '@react-navigation/native';
import createStackNavigator from '@react-navigation/stack'
const Stack = createStackNavigator();
class Hello extends React.Component 
        constructor(props: MyProps) 
          super(props);
          this.state = 
            disabled: false
          
        
        return (
          <Stack.Navigator>
            <Stack.Screen
                name="Register"
                component=() => <Register disabled=this.state.disabled />
                options=headerShown:false
            />
          </Stack.Navigator>
    );


function Register(disabled, navigation) 
    return (
        <Button buttonStyle=styles.btnPrimary title="Register" disabled=disabled onPress=()=>this.setState(disabled: true)/>
    )

以上是关于未定义不是对象(正在评估this.state)的主要内容,如果未能解决你的问题,请参考以下文章

反应本机获取多标记[未处理的承诺拒绝:TypeError:TypeError:未定义不是对象(评估'this.state.markers.map

反应原生相机胶卷“null不是对象(评估'this.state.photos')”

在 XCode 上运行时出错“未定义不是对象(正在评估 'GoogleCast.DEVICE_AVAILABLE')”

错误:未定义不是对象(评估 \'RCTWebSocketManager.connect\')

未定义不是对象(评估 '_reactNativeCamer.RNCamera.Constants'

类型错误未定义不是对象(正在评估'Wu.getRandomValues')