簡體   English   中英

如何從另一個類 React-native 調用函數

[英]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.

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