react-native 路由重复跳转和ios输入问题

react-native 路由重复跳转和ios输入问题

1.多连续点击页面跳转,造成页面重叠。

在使用navigation.navigate进行route跳转的时候,难免会出现重复点击然后push相同route的情况。

之前对这个问题一直都是束手无策,官方也并没有给出好的解决方法。直到尝试了用navigation.navigate(navigationAction),终于避免了这个问题。

TIM图片20180623133520.png

导航操作将使用导航动作的结果更新当前状态。 

routeName:  在应用程序路由器注册的目标路线名

Params:  合并到目标路线的参数 

action:  在子路由中运行的子动作,如果目标路线同时是一个导航器,可以进行二级跳转登操作。

key:  导航到的路径的标识符。如果它已经存在,导航会回到这条路线,不会造成重复导航。

因为APP有大量的跳转操作,我们可以对这个操作进行封装。

/*Config.js**/

import { NavigationActions } from 'react-navigation';

export function navigationAction({route,params=null,action=null,key=route}){
    return NavigationActions.navigate({

	   routeName: route,

	   params: params,

	   action: action,

	   key: key
    });
};


/*把这个方法放在常用的模块里面,导出使用。**/

import Config from "./constants/Config"

navigation.dispatch(Config.navigationAction({route:"个人主页"}))
2.ios环境textInput无法输入中文

一般是因为我们在给textInput设置默认值的时候用的是state,其实textInput的value属性只是来给默认值,之后的输入会覆盖value的初始值。

我们可以设置一个普通变量给value属性的做初始值,让onChangeText改变设置的state属性。

日记本

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

赞赏支持
被以下专题收入,发现更多相似内容