[英]How to call a function from another class React-native
我試圖從另一個類調用一個函數,它拋出一個錯誤 getValue is not a function。 我不想使用靜態。 我希望有一個解決方案。 這是我的代碼
import React, { Component } from "react";
import SecondClass from "./main"
export default class A extends Component{
constructor (props) {
super(props)
onPress = ()=>{
getValue()
}
}
//SecondClass
export default class SecondClass extends Component{
constructor (props) {
super(props)
}
getValues = () => {
alert("Hello")
}
}
我認為您需要在A
定義函數,然后將SecondClass
組件中的函數作為道具傳遞...
https://www.npmjs.com/package/react-native-simple-events
你可以在這里使用這個庫,你可以注冊你的函數,並且可以從應用程序的任何地方觸發。
要注冊您的函數on("eventID", "listenerID", ()=>{//call getValues})
在類SecondClass
使用on("eventID", "listenerID", ()=>{//call getValues})
對於觸發器你的函數在類A
使用trigger("eventID", eventData)
之后使用remove("eventID", "listenerID")
從類SecondClass
remove("eventID", "listenerID")
SecondClass
你不能指望你可以簡單地調用另一個類中的某個函數,因為你導入了那個類。 如果這些是父子組件,React 這樣做的方法是將函數作為 prop 傳遞。 如果沒有,我強烈建議從兩個類中提取通用函數並分別調用它們。
從評論中,如果您絕對想將函數耦合到Second
class,其他用戶也建議使用static
函數。
我的主要目標是當用戶按下按鈕時,它應該從另一個類調用該方法並返回 Hello。 然后我想設置一些在靜態函數中無法實現的屬性。 所以這就是為什么我不想使用靜態函數
從您的示例代碼看起來Second
是一個 React 組件? 如果這個類是為了封裝某些行為,那么我建議將它變成一個普通的 javascript 類,然后在必要時實例化/使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.