我正在尝试从另一个类调用函数,它引发错误getValue不是函数。我不想使用静态。我希望有解决方案。这是我的代码
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")
}
}
答案 0 :(得分:0)
我认为您需要在A
中定义函数,然后在SecondClass
组件中将函数作为道具传递。
答案 1 :(得分:0)
https://www.npmjs.com/package/react-native-simple-events
您可以在此处使用此库,可以注册功能并可以从应用程序中的任何位置触发。
要注册功能,请在类on("eventID", "listenerID", ()=>{//call getValues})
中使用SecondClass
要触发您的函数,请在类trigger("eventID", eventData)
中使用A
之后,通过使用remove("eventID", "listenerID")
类中的SecondClass
删除监听器
答案 2 :(得分:0)
您不能指望您可以简单地在另一个类中调用某个函数,因为您导入了该类。如果这些是父子组件,那么React的方法是将该函数作为道具传递。如果没有,我强烈建议从两个类中提取出通用函数,然后分别调用它们。
从注释中,如果您绝对希望将功能耦合到static
类,则其他用户也建议使用Second
函数。
我的主要目的是当用户按下按钮时,它应该从另一个类调用该方法并返回Hello。然后,稍后我想设置一些在静态函数中无法实现的属性。那就是为什么我不想使用静态函数
从您的示例代码中,看起来Second
是一个React组件吗?如果要使此类封装某些行为,则建议将其转换为普通的javascript类,然后在必要时实例化/使用。