Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 导入组件_Javascript_Reactjs_Import - Fatal编程技术网

Javascript 导入组件

Javascript 导入组件,javascript,reactjs,import,Javascript,Reactjs,Import,我是ReactJS新手,我正在构建足够多的组件,它们可能会分布在几个不同的文件中(只是为了组织性/可读性)。但是,我似乎无法使导入功能正常工作。下面是我正在处理的场景的简化版本: ExportMe.jsx: class A extends React.component { render() { return <h1>Data below:</h1> } } export default class B extends React.comp

我是ReactJS新手,我正在构建足够多的组件,它们可能会分布在几个不同的文件中(只是为了组织性/可读性)。但是,我似乎无法使
导入
功能正常工作。下面是我正在处理的场景的简化版本:

ExportMe.jsx

class A extends React.component {
    render() {
        return <h1>Data below:</h1>
    }
}
export default class B extends React.component {
    render() {
        return <div><A/><span>{this.props.data}</span></div>
    }
}
import {B} from "ExportMe.jsx";
$.getJSON( "./data/json_files/Intro.json", function(data) {
    ReactDOM.render(
        <TextDisplay data={data}/>,
        document.getElementById('centerPanel')
    );
})
在HTML中,我只需编写
,但在控制台中出现以下错误:

Uncaught Error: Module name "ExportMe.jsx" has not been loaded yet for context: _. Use require([])

我甚至没有使用RequireJS,导入它并不能解决这个错误。如果我还试图在HTML中包含
,那么我会收到一个错误,告诉我没有定义导出。我如何处理这个问题,或者我真的需要将所有ReactJS组件合并到一个文件中?

删除大括号,如果exportme.jsx文件与importer.jsx位于同一文件夹中,您应该在文件前面加上“/”这样:
从“/ExportMe.jsx”导入B

删除大括号,如果exportme.jsx文件与importer.jsx位于同一文件夹中,则应在文件前面加上“/”前缀,如下所示: 从“/ExportMe.jsx”导入B

在导入中,更改

import {B} from "ExportMe.jsx";
import B from "ExportMe.jsx";
在导入函数时使用{functionName},在导入中更改

import {B} from "ExportMe.jsx";
import B from "ExportMe.jsx";

导入函数时使用{functionName},这里您有两个导入问题。您的代码应该如下所示

ExportMe.jsx

B
将不带大括号导入,因为它在
ExportMe.jsx
文件中被设置为默认导出对象; “C”将与大括号一起导入,因为它也被导出,但不是作为
default


注意:如果您从“ExportMe.jsx”输入
importb-它将查看节点包,而不是文件。这就是为什么在导入表单文件时必须使用
/

这里有两个导入问题。您的代码应该如下所示

ExportMe.jsx

B
将不带大括号导入,因为它在
ExportMe.jsx
文件中被设置为默认导出对象; “C”将与大括号一起导入,因为它也被导出,但不是作为
default


注意:如果您从“ExportMe.jsx”输入
importb-它将查看节点包,而不是文件。这就是为什么在导入表单文件时必须使用
/

是否使用webpack之类的捆绑程序?如果没有某种包装器或transpiler,import和require目前无法在浏览器中单独工作。是的,在将其添加到HTML之前,您需要将它们组合并捆绑到单个文件中。查看此starter project create react应用程序您是否正在使用诸如webpack之类的捆绑包?如果没有某种包装器或transpiler,import和require目前无法在浏览器中单独工作。是的,在将其添加到HTML之前,您需要将它们组合并捆绑到单个文件中。查看此初学者项目创建react应用程序
import B, {C} from './ExportMe.jsx';