react-native 路由重复跳转和ios输入问题
react-native 路由重复跳转和ios输入问题
1.多连续点击页面跳转,造成页面重叠。
在使用navigation.navigate进行route跳转的时候,难免会出现重复点击然后push相同route的情况。
之前对这个问题一直都是束手无策,官方也并没有给出好的解决方法。直到尝试了用navigation.navigate(navigationAction),终于避免了这个问题。
导航操作将使用导航动作的结果更新当前状态。
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属性。
这个人暂时没有 freestyle