gpt4 book ai didi

javascript - react js从单个jsx文件导入多个组件

转载 作者:行者123 更新时间:2023-12-04 12:18:54 35 4
gpt4 key购买 nike

我正在尝试导入多个组件,这些组件位于主 js 文件的一个 jsx 文件中

这个问题已经回答了,但这里没有例子How to import and export components using React + ES6 + webpack?

我的代码如下

App3.jsx 文件

import React from '../node_modules/react';


export default class App2 extends React.Component {
render() {
var i = 1;

var myStyle = {
fontSize: 25,
color: '#FF0000'
}

return (
<div>
<h1>Header</h1>
<h2>Content</h2>
<p data-myattribute = "somevalue">This is the content!!!</p>
<h1>{1+1}</h1>
<h1>{i = 1 ? 'True!' : 'False'}</h1>
<h1 style = {myStyle}>Header</h1>
{ /*gsadjshds */ }
</div>
);
}
}




export default class App3 extends React.Component {
render() {
return (
<div>
<Header/>
<Content/>
</div>
);
}
}

export default class Header extends React.Component {
render() {
return (
<div>
<h1>Header</h1>
</div>
);
}
}

export default class Content extends React.Component {
render() {
return (
<div>
<h2>Content</h2>
<p>The content text!!!</p>
</div>
);
}
}

和 main.js 文件如下
import React from './node_modules/react';
import ReactDOM from './node_modules/react-dom';
import App from './js/App.jsx';
import App1 from './js/App1.jsx';
import {App2, App3} from './js/App3.jsx';


ReactDOM.render(<App />, document.getElementById('app'));
ReactDOM.render(<App1 />, document.getElementById('app1'));
ReactDOM.render(<App2 />, document.getElementById('app2'));
ReactDOM.render(<App3 />, document.getElementById('app3'));

但我得到以下错误

警告:React.createElement:类型不应为 null、未定义、 bool 值或数字。它应该是一个字符串(对于 DOM 元素)或一个 ReactClass(对于复合组件)。

错误:元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。

您的帮助将不胜感激

最佳答案

可能是因为你使用了多个export default在一个文件中。 React 对待 export default喜欢 main文件的类/函数,并会与其他 main 冲突导出时。您的代码应该是

import React from '../node_modules/react';


class App2 extends React.Component {
render() {
var i = 1;

var myStyle = {
fontSize: 25,
color: '#FF0000'
}

return (
<div>
<h1>Header</h1>
<h2>Content</h2>
<p data-myattribute = "somevalue">This is the content!!!</p>
<h1>{1+1}</h1>
<h1>{i = 1 ? 'True!' : 'False'}</h1>
<h1 style = {myStyle}>Header</h1>
{ /*gsadjshds */ }
</div>
);
}
}




class App3 extends React.Component {
render() {
return (
<div>
<Header/>
<Content/>
</div>
);
}
}

class Header extends React.Component {
render() {
return (
<div>
<h1>Header</h1>
</div>
);
}
}

class Content extends React.Component {
render() {
return (
<div>
<h2>Content</h2>
<p>The content text!!!</p>
</div>
);
}
}
export { App2, App3 };

引用: https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export

关于javascript - react js从单个jsx文件导入多个组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37773775/

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