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