在React Native中无法使用来自不同文件的功能

时间:2018-11-27 20:16:46

标签: javascript node.js firebase react-native firebase-realtime-database

我有一个带有RN组件 PageRegistration 的文件:

const { registerUser } = require('../../db/db');

export default class PageRegistration extends Component {
constructor(props) {
    super(props);
    this.state = {
        ...
    }
}
regUser = () => {
    ...
    registerUser(user);
}

render() {
    return(
        <View style = {pageRegistrationStyle.container}>

            ...

                <TouchableOpacity onPress = {this.regUser}
                    style = {pageRegistrationStyle.registrButton}>
                    <Text style = {pageRegistrationStyle.registrButtonText}>
                        ADD USER
                    </Text>
                </TouchableOpacity>

        </View>
    )
}
}

和另外一个文件 db

const firebase = require("firebase");

const config = {
  ...
};

firebase.initializeApp(config);

const db = firebase.database();

const registerUser = (user) => {
  db.ref('userData').set({
    ...
  });
};

export default registerUser;

由于某些原因,当我从 db 文件将函数 registerUser()导入文件 PageRegistration 时,出现错误“对象不能作为React子项有效(找到:带键的对象($$ typeof,类型,键,ref ...)。如果要渲染子项集合,请改用数组。”

怎么了?我错过了什么?有人可以帮我吗?

版本:

问题似乎与 db 文件的内容有关。特别是-导入 firebase

的第一行

2 个答案:

答案 0 :(得分:0)

有两种导出函数的方法,默认和常规。

在db中,您将导出默认值,因此在导入函数时不应使用方括号。 这应该起作用。

const registerUser = require('../../ db / db');

答案 1 :(得分:0)

将Firebase降级为4.9.1版本后,该问题已解决