首頁  >  文章  >  web前端  >  如何解決react link不跳轉問題

如何解決react link不跳轉問題

藏色散人
藏色散人原創
2021-11-26 11:40:213644瀏覽

react link不跳轉的解決方法:1、關閉JS Remotely;2、給根路徑route元件增加extra;3、將TouchableOpacity作為link元件的屬性傳入即可。

如何解決react 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上找了一個基礎的項目,一點點找不同,才發現是這個被忽視的問題

原理其實很簡單 https://www.cnblogs.com/superlizhao/p/9280122.html

我有這個問題是因為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>

裡面有會導致不跳轉

推薦學習:《react影片教學

以上是如何解決react link不跳轉問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn