Я следую главе 5, React with JSX, книги Learning React от O'Reilly.
Я написал приложение Recipes, используя create-react-app
в качестве основы.
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import Menu from './Menu';
import registerServiceWorker from './registerServiceWorker';
import data from './data/recipes';
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.
В книге говорится, что установка window.React
на React
открывает доступ к библиотеке React глобально в браузере. Таким образом, все вызовы React.createElement
гарантированно сработают. Но похоже, что мне все еще нужно импортировать React для каждого файла, использующего JSX.