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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理