在本机0.60中,是否有方法可以将参数设置为在屏幕中导航的导航选项加载

时间:2019-10-13 06:47:09

标签: react-native

我有一个“编辑”页面,当用户选择所需的颜色和图标时,请单击屏幕标题上的“保存”按钮,然后将所选的颜色和图标保存在Asyncstorage上并返回主页。 我将颜色和图标存储在“编辑”页面的状态中,并且有一个名为SaveChanges()的函数,该函数将这种颜色和图标保存在Asyncstorage上并返回到主页。 单击标题上的保存按钮时,我想调用此函数。 但是在navigationOption:
1-我无法访问此页面(如本页)
2-navigationOption在componentDidMount之前调用,因此componentDidMount中的setParam不会影响navigationOption。


componentDidMount() {

     this.props.navigation.setParams({ saveChanges: this.saveChanges });
   }

saveChanges=()=>{
     console.warn("in save changes");
     asyncstorage.SetinfoInAsyncstorage(this.props.lable,{issuer:this.state.issuerName,color:this.state.selectedColor,icon:this.state.selectedIcon}, (mymessage) =>
     {
        const resetAction = StackActions.reset({
          index: 0,
           actions: [NavigationActions.navigate({ routeName: 'AllAccountInfo',params:{allaccountmessage:mymessage} })],
          });
        this.props.navigation.dispatch(resetAction);



     });
   }

   static navigationOptions = ({ navigation }) => {
     return {
       headerRight: (
         <MaterialHeaderButtons>
           <Item buttonStyle={{color:'black'}}  title="save" iconName="save" onPress={()=>{
             navigation.getParam('saveChanges');
             }} />
         </MaterialHeaderButtons>

       ),
     };
   }; 

导航文档说我必须使用redux。但是我不想要redux,因为它会使我的应用程序复杂化。
搜索时,标题的标题会动态更改,但是看不到headerRight。

0 个答案:

没有答案