Reactjs TypeError:undefined不是对象(求值';this.setState';)
我想将一个导出函数呈现给我的一个组件(这里是要登录组件的renderheaderCommentPart) 如果我将调用模态组件的follow代码直接放在SignIn组件中,但一旦我将另一个组件打包为导出函数,它就不工作了,并显示错误消息“TypeError:undefined不是一个对象(求值“This.setState”) 我试图定义setState,但仍然存在相同的错误,并且我不必在构造类中使用bind(this),因为这不是事件DOM处理程序 请帮帮我,谢谢Reactjs TypeError:undefined不是对象(求值';this.setState';),reactjs,react-native,Reactjs,React Native,我想将一个导出函数呈现给我的一个组件(这里是要登录组件的renderheaderCommentPart) 如果我将调用模态组件的follow代码直接放在SignIn组件中,但一旦我将另一个组件打包为导出函数,它就不工作了,并显示错误消息“TypeError:undefined不是一个对象(求值“This.setState”) 我试图定义setState,但仍然存在相同的错误,并且我不必在构造类中使用bind(this),因为这不是事件DOM处理程序 请帮帮我,谢谢 export functio
export function renderheaderCommentPart(onPress, hearderLeftText, modalContent)
{
this.setState({
visible: true,
swipeableModal: false
});
return (
<View>
<Header style={Styles.header}>
<Left>
<Button transparent onPress={onPress}>
<Icon name='ios-arrow-back'/>
</Button>
</Left>
<Body>
<Title style={Styles.headerText}>{hearderLeftText}</Title>
</Body>
<Right>
<View>
<Button transparent
onPress={() => {
this.setState({ visible: true });
}}
>
<Icon style={Styles.icon_more} name='more' />
</Button>
<Modal
visible={this.state.visible}
onTouchOutside={() => {
this.setState({ visible: false });
}}
footer={
<ModalFooter>
<ModalButton
text="CANCEL"
onPress={() => {
this.setState({ swipeableModal: false });
}}
/>
<ModalButton
text="OK"
onPress={() => {}}
/>
</ModalFooter>
}
>
<ModalContent>
<Text>{modalContent}</Text>
</ModalContent>
</Modal>
</View>
</Right>
</Header>
</View>
)
}
导出函数renderheaderCommentPart(onPress、HeaderLeftText、modalContent)
{
这是我的国家({
可见:对,
SwipeAbleModel:错误
});
返回(
{heardLeftText}
{
this.setState({visible:true});
}}
>
{
this.setState({visible:false});
}}
页脚={
{
this.setState({swipablemodel:false});
}}
/>
{}}
/>
}
>
{modalContent}
)
}
期望:
在渲染部件中的登录组件中
应显示另一个文件中定义的renderheaderCommentPart函数这看起来像没有设置状态()的功能组件;使用回调函数作为道具来设置父组件中的状态 setState()是类基组件的异步函数 如果您的项目版本为16.8或更高版本,请使用挂钩
或者将您的组件转换为类基类Tks@prabhunah Yadav,我可以使用钩子,因为我的react是16.9,我尝试像这样添加钩子:const[visible,swipeableModal]=useState(“”);然后onPress={()=>{visible(false)},但显示另一个错误消息可能是钩子概念问题const[visible,setVisible]=useState(false);这里可见的是数据保存的钩子状态变量,setVisible是更新钩子状态变量-visible值的函数。useState(false);-false是默认值