簡體   English   中英

使用setState與setParams來反應Native

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM