加入收藏 | 设为首页 | 会员中心 | 我要投稿 宿州站长网 (https://www.0557zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

react link不跳转怎么办,解决办法是什么?

发布时间:2022-02-08 15:29:36 所属栏目:编程 来源:互联网
导读:react link不跳转怎么办?对于出现react router native:link点击不跳转的问题,有一些朋友不知道怎样解决,对此这篇针对下面的示例小编和大家一起来分析解决看看,需要的朋友就继续往下看吧。 本文操作环境:Windows7系统、react17.0.1、Dell G3。 如何解决re
      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>
    1、关闭JS Remotely
    不知为何开了远程调试后导致TouchableOpacity失效。关闭后点击能看到TouchableOpacity效果,仍然不能跳转
 
    2、给根路径route组件增加extra
// 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,调整之后反而暴露不认真读原理的问题,惭愧
 
    3、将TouchableOpacity作为link组件的属性传入
const linkParams = {
    pathname: '/star',
    state: { data: item },
}
 
<Link to={ linkParams } component={ TouchableOpacity }>
    <Item text={ item.text } index={ index }/>
</Link>
    <link>里面有<TouchableOpacity>会导致不跳转。

(编辑:宿州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读