我正在遵循第5章"与JSX和#34; "学习反应"来自O' reilly。
我使用create-react-app作为基础编写了食谱应用程序。
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import registerServiceWorker from './registerServiceWorker';
import data from './data/recipes';
import Menu from './Menu';
window.React = React
ReactDOM.render(<Menu recipes={data} />, document.getElementById('root'));
registerServiceWorker();
Menu.js
import Recipes from './Recipes';
const Menu = ({recipes}) =>
<article>
<header>
<h1>Delicious Recipes</h1>
</header>
<div className = "recipes">
{recipes.map((recipe, i)=>
<Recipes key={i} {...recipe} />
)}
</div>
</article>
export default Menu
错误是
Failed to compile
./src/Menu.js
Line 5: 'React' must be in scope when using JSX react/react-in-jsx-scope
Line 6: 'React' must be in scope when using JSX react/react-in-jsx-scope
Line 7: 'React' must be in scope when using JSX react/react-in-jsx-scope
Line 9: 'React' must be in scope when using JSX react/react-in-jsx-scope
Line 11: 'React' must be in scope when using JSX react/react-in-jsx-scope
Search for the keywords to learn more about each error.
This error occurred during the build time and cannot be dismissed.
本书说&#34;设置window.React to React在浏览器中全局公开React库。这样,所有对React.createElement的调用都可以保证工作&#34;。但似乎我仍然需要将“反应”从“反应”&#39 ;;&#34;在每个使用JSX的文件上。
答案 0 :(得分:2)
在您的Menu.js文件上导入React:
import React from 'react'
如果您在项目中使用此库(React),则应始终在特定文件中导入React,该文件使用JSX。
答案 1 :(得分:2)
发生这种情况是由于JSX文件中必须进行“反应”导入。由于JSX会作为React进行编译,因此React库也必须始终在JSX代码的范围内。
在您的情况下,“反应”必须导入Menu.js中,
import React from "react";
答案 2 :(得分:0)
这是因为不从'react'属性中导入React模块,因此您可以尝试导入模块,并在声明函数时尝试使用'export',以便使用'import {菜单},如下所示
import React from 'react';
import Recipes from './Recipes';
export const Menu = ({recipes}) => (
<article>
<header>
<h1>Delicious Recipes</h1>
</header>
<div className = "recipes">
{recipes.map((recipe, i)=>
<Recipes key={i} {...recipe} />
)}
</div>
</article>
);
答案 3 :(得分:0)
在 react 的最新更新中,无需使用 我们可以在不从 React 导入 react 的情况下编写代码
import React from 'react'
答案 4 :(得分:0)
导入反应
import React from 'react'
这应该有效