[英]React Native using setState with setParams
我正在開發一個React本機應用程序,我希望能夠從靜態NavigationOptions更改狀態。 我正在關注: https : //github.com/react-navigation/react-navigation/issues/1789
並實現了以下解決方案之一:
static navigationOptions = ({navigation}) => { const { state } = navigation; const {params = {}} = navigation.state; navigation.params = {title: "", description: "", points: 0, image: {}, saveImage: true}; return { headerRight: ( <Button transparent onPress={()=> params.create()}><Icon name="ios-add" style={{color: 'white'}}/></Button>) }; }; componentDidMount() { this.props.navigation.setParams({ create: this.openCreateModal }); } openCreateModal() { this.setState({createModalVisible:true}); }
不幸的是,當我通過按下按鈕調用openCreateModal函數時,出現錯誤this.setState is not a function
。
我將不勝感激。
您的openCreateModal()
方法未綁定。 在這個問題上往下看 ,有人指出了這個錯誤。
要解決此問題,您需要顯式綁定它,以便它可以訪問正確的this
上下文,例如在構造函數中:
constructor(props) {
super(props);
this.openCreateModal = this.openCreateModal.bind(this);
}
或者,您可以將其轉換為ES6箭頭函數,將其自動綁定到類的上下文,如下所示:
openCreateModal = () => {
this.setState({createModalVisible:true});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.