未定义不是对象(正在评估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.Screen
的component
属性,该属性实例化您的<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\')