gpt4 book ai didi

javascript - 在 react-native 中需要模块

转载 作者:可可西里 更新时间:2023-11-01 05:20:03 24 4
gpt4 key购买 nike

我在 react-native 项目中遇到了一个问题。我正在尝试做一个通用的 require 文件,我在其中导出所有模块。之后我只想要求我的“require.js”文件以避免在每个文件中调用这样的 require('../../ModuleName') 。

我有 4 个文件:

index.ios.js
/app/home.js
/app/MyView.js
/app/require.js

要求.js:

module.exports = {

Home: require('./home'),
MyView: require('./MyView')

}

在 index.ios.js 中(Home 和 MyView 模块正确导入)

'use strict';

var React = require('react-native');
var {
AppRegistry,
StyleSheet,
Text,
View,
} = React;

var {
Home,
MyView
} = require('./app/require');

class Test_require extends React.Component {

render() {

return(
<Home />
);
}

}



AppRegistry.registerComponent('Test_require', () => Test_require);

Home.js(模块 MyView 未导入)

'use strict';

var React = require('react-native');

var {
View,
Text
} = React;

var {
MyView
} = require('./require');

class Home extends React.Component {

render() {
console.log(MyView);
return(
<MyView />
);
}

}

module.exports = Home;

在 Home.js 中,MyView 变量是“未定义的”。如果我想在一个模块中引用一个模块,该模块已经导入到另一个文件中,则该变量是未定义的。

你们知道为什么我可以这样做,或者有更好的解决方案来解决我的问题吗?感谢任何线索

最佳答案

所以我发布了我自己的答案,以防其他人遇到同样的问题。

在这样的语法中,所需的文件被同步加载。因此,如果组件的构建速度比需要文件的速度快,则会发生此问题。要么让你的组件在你需要的时候延迟加载,要么使用像这样的 es6 导入语法(异步导入加载):

import React from 'react-native'

干杯!

关于javascript - 在 react-native 中需要模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33143147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com