我收到“ React.Children.only预期会收到一个React子元素。” 从下面的代码。
我使用create-react-app创建了一个新的react应用,并安装了redux和react- redux,并创建了一个简单的reducer并使用它创建了store。
import React from "react"; import ReactDOM from "react-dom"; import { createStore, combineReducers } from "redux"; import { Provider } from "react-redux"; import logo from './logo.svg'; import './App.css'; class App extends React.Component { render() { return ( <div className="App"> <div className="App-header"> <img src={logo} className="App-logo" alt="logo" /> <h2>Welcome to React</h2> </div> <p className="App-intro"> To get started, edit <code>src/App.js</code> and save to reload. </p> </div> ); } } function productReducer(state = [], action) { return state; } const store = createStore( productReducer ); ReactDOM.render((<Provider store={store}><App /> </Provider>), document.getElementById('root'));
您在此处有一个空格:
↓ <Provider store={store}><App /> </Provider>
JSX对单行间距有点挑剔。以上基本上被解释为:
<Provider store={store}><App />{' '}</Provider>
(实际上,Prettier将产生几乎完全相同的输出)
您可以删除空格:
<Provider store={store}><App /></Provider>
或者将其分解为多行:
<Provider store={store}> <App /> </Provider>