簡體   English   中英

可觸摸的不透明度標頭React Native

[英]Touchable Opacity Header React Native

我希望我的反應導航欄中的標題可單擊,並在單擊時彈出一個菜單,我試圖首先僅獲取日志或警報彈出,但是當我單擊時屏幕呈現時它會打開它

這是一個鏈接,其中我使用onPress將自定義組件添加到標題中,但僅觸發onRender

https://snack.expo.io/r10TGyieE

我究竟做錯了什么?

https://snack.expo.io/HJvXPJix4

您需要讓它調用onPress={() => this.someAction()}而不是onPress={this.someAction()}

就像Dadsquatch所說的那樣,

這個:

onPress={this.someAction()}

被視為直接代碼,並且在應用程序到達其所在的行后立即執行(這就是為什么它在啟動時執行的原因,盡管您在啟動時未提及)

但是當您使用時:

onPress={() => this.someAction()}

您告訴編譯器,這是在發生onPress時要執行的函數。 您會看到它是箭頭函數格式。

您的onPress事件沒有綁定,因此它將在您運行應用程序時首先觸發。

使用Es6箭頭功能時,默認情況下綁定功能。 onPress={()=>this.someFunction()}

否則,您需要手動綁定onPress={this.someFunction.bind(this)}來調用您的函數。

 class LogoTitle extends React.Component { render() { return ( <TouchableOpacity onPress={()=>alert('test')}> <Text style={{ color: "white", fontWeight:'bold' }}> List Layout</Text> </TouchableOpacity> ); } } 

正如塔雷克所說,您可以使用

要不然

onPress={this.someAction}

由於onPress方法調用函數,因此可以直接編寫函數名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM