如何从其他组件调用默认函数

时间:2018-11-15 13:35:30

标签: javascript reactjs react-native

我想调用一个包含带有来自不同组件的参数的函数的组件,例如: 我的组件(A)包含以下内容:

export default doSomething = (key,value) =>{
firebase.database().ref('ref/').update({
    key:value
});}

我想在(B)和(C)两个组件中使用(A):

import A from 'Path';
render(){ 
   var name={};
   return (<Button onPress={()=><A key={name} value="Any Name"/>}/>)
}

首先,致电(A)的最佳方法是什么? 其次,像我称为name的调用键永远不会出错,也永远不会起作用。我做了console.log()并且输出是对象,那么如何正确调用key?

2 个答案:

答案 0 :(得分:1)

默认情况下,您在A中的导出是一种方法,因此:

onPress={() => A(name, "AnyName")}

答案 1 :(得分:0)

doSomethingA)不是组件,而只是函数。另外,export default doSomething = ...语法可能会出现问题,因为它需要事先定义doSomething变量,但未显示。

如果key不是属性名称,而是包含属性名称的变量,则应使用计算属性。

应该是:

export default (key, value) => {
    firebase.database().ref('ref/').update({
        [key]: value
    });
}

并用作(另一个答案已经提到了这一点):

<Button onPress={() => A(name, "Any Name")}/>