【问题标题】:Usage of functions from different files in React Native doesn't work在 React Native 中使用来自不同文件的函数不起作用
【发布时间】:2019-04-29 15:39:53
【问题描述】:

我有一个带有 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;

由于某种原因,当我将函数 registerUser()db 文件导入文件 PageRegistration 时,我收到错误 "Objects作为 React 子级无效(发现:带键的对象 ($$typeof, type, key, ref ...)。如果您要渲染子级集合,请改用数组。”

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

版本:

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

导入的第一行

【问题讨论】:

  • 不确定这是否是您的问题,但const { registerUser } 应该是const registerUser,因为它是默认导出。
  • 不幸的是它没有帮助
  • 错误的导入不会导致这种情况;错误通常有行号,它指向哪一行?您拥有的代码有效(如果我将其更改为网络反应:codesandbox.io/s/qlmm0rrzqj)另外,这似乎相关:stackoverflow.com/questions/50555275/…
  • 它指向.../node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js 中的几行:9616:6 (10679:31, 11114:6, 11612 :6 等)。第一个子错误调用“throwOnInvalidObjectType”
  • 显示所有你的标记。问题很可能是您有一些 JSX 表达式返回不是 React 元素的内容。如果没有看到引发错误的文件中的所有标记,将很难调试

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


【解决方案1】:

导出函数有两种方式,默认和普通。

在 db 中,您正在导出默认值,因此在导入函数时不应使用括号。 这应该可以。

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

【讨论】:

    【解决方案2】:

    将firebase降级到4.9.1版本后问题已解决

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-29
      • 2022-10-19
      • 1970-01-01
      • 2021-04-16
      • 2018-05-31
      相关资源
      最近更新 更多