Reactjs TypeError:undefined不是对象(求值';this.setState';)

Reactjs TypeError:undefined不是对象(求值';this.setState';),reactjs,react-native,Reactjs,React Native,我想将一个导出函数呈现给我的一个组件(这里是要登录组件的renderheaderCommentPart) 如果我将调用模态组件的follow代码直接放在SignIn组件中,但一旦我将另一个组件打包为导出函数,它就不工作了,并显示错误消息“TypeError:undefined不是一个对象(求值“This.setState”) 我试图定义setState,但仍然存在相同的错误,并且我不必在构造类中使用bind(this),因为这不是事件DOM处理程序 请帮帮我,谢谢 export functio

我想将一个导出函数呈现给我的一个组件(这里是要登录组件的renderheaderCommentPart)

如果我将调用模态组件的follow代码直接放在SignIn组件中,但一旦我将另一个组件打包为导出函数,它就不工作了,并显示错误消息“TypeError:undefined不是一个对象(求值“This.setState”)

我试图定义setState,但仍然存在相同的错误,并且我不必在构造类中使用bind(this),因为这不是事件DOM处理程序

请帮帮我,谢谢

 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是默认值