react link不跳转怎么办?对于出现react router native:link点击不跳转的问题,有一些朋友不知道怎样解决,对此这篇针对下面的示例小编和大家一起来分析解决看看,需要的朋友就继续往下看吧。
本文操作环境:Windows7系统、react17.0.1、Dell G3。
如何解决react link不跳转问题?
react router native:link点击不跳转
rn嵌入原生,出现点击TouchableOpacity组件内容没反应、不跳转的情况
// App.js const history = createMemoryHistory() <Router history={ history }> <Switch> <Route path="/" component={ Home }/> <Route path="/test" component={ Test } /> </Switch> </Router> // Home.js <View> <Link to="/test"> <TouchableOpacity key={ text } style={ styles.wrapper }> <Text style={ styles.text }>{ text }</Text> </TouchableOpacity> </Link> </View>
不知为何开了远程调试后导致TouchableOpacity失效。关闭后点击能看到TouchableOpacity效果,仍然不能跳转
// App.js <Router history={ history }> <Switch> <Route extra path="/" component={ Home }/> // 增加extra <Route path="/test" component={ Test } /> </Switch> </Router>
因为不熟悉rn开发,最初担心是使用了createMemoryHistory导致的,后来又担心页面跳转了但是被挡住之类的,思路一直偏了
最后老老实实到github上找了一个基础的项目,一点点找不同,才发现是这个被忽视的问题
原理其实很简单 :
exact是Route下的一条属性,一般而言,react路由会匹配所有匹配到的路由组价,exact能够使得路由的匹配更严格一些。
exact的值为bool型,为true是表示严格匹配,为false时为正常匹配。
如在exact为true时,’/link’与’/’是不匹配的,但是在false的情况下它们又是匹配的。
一个常用的场景是这样的:
<Route path='/' component={Home} /> <Route path='/page' component={Page}> //这种情况下,如果匹配路由path='/page',那么会把Home也会展示出来。
所以我们经常添加exact来解决上述问题。
<Route exact path='/' component={Home} /> <Route path='/page' component={Page} />
我有这个问题是因为router4.x使用多层嵌套路由报了warning,调整之后反而暴露不认真读原理的问题,惭愧
const linkParams = { pathname: '/star', state: { data: item }, } <Link to={ linkParams } component={ TouchableOpacity }> <Item text={ item.text } index={ index }/> </Link>
<link>里面有<TouchableOpacity>会导致不跳转
对于react link不跳转问题的解决方法就介绍到这,需要的朋友可以参考上述解决方法,希望能对大家有帮助。想要了解更多其他的相关问题,大家可以关注群英网络其它相关文章。
文本转载自PHP中文网
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理