React Error: Objects are not valid as a React child in a Functional Component
React Error: Objects are not valid as a React child in a Functional Component
我对这个错误做了很多研究,但我发现大部分示例都是 Class 组件出现错误,而我使用的是功能组件!!这是我正在做的 React 课程的要求,我们正在做第一个项目,另一个要求是仍然不要使用 -create-react-App :(
所以,他们给了我们 React 和 Babel 脚本,这是我的 HTML 脚本:
<script
src="https://unpkg.com/react@16/umd/react.development.js"
crossorigin
></script>
<script
src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"
crossorigin
></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script type="text/babel" src="./scripts/app.js"></script>
请不要笑!!!
无效的代码是:
function App() {
const today = new Date()
console.log(today);
let filters = {
dateFrom: today,
// dateTo: new Date(today.valueOf() + 86400000),
// country: "",
// price: 0,
// rooms: 0,
};
return (
<div>
<Hero filters={filters} />
</div>
);
}
function Hero({ filters }) {
return (
<section className="hero is-primary">
<div className="hero-body">
<div className="container">
<h1 className="title">Hotels</h1>
<h2 className="subtitle">
from <strong>{filters.dateFrom}</strong> to
<strong>dddd, DD of mmmm de AAAA</strong>
</h2>
</div>
</div>
</section>
);
ReactDOM.render(<App />, document.getElementById("app"));
}
问题是 dateFrom: 今天,如果我向那里发送一个简单的字符串,它会完美地工作,但我需要在对象内部发送当前的日期,这是一个简单的应用程序寻找酒店。 类 中提供了此代码的结构(使用 const 过滤器对象和功能组件),我应该让它工作:(
我正在效仿这个 link 的例子:http://learningprogramming.net/modern-web/react-functional-components/pass-object-to-props-in-react-functional-components/
但它使用 create-react-app...
我得到的错误是:
未捕获错误:对象作为 React 子对象无效(发现时间:2020 年 4 月 21 日星期二 11:08:12 GMT-0300(阿根廷标准时间))。如果您打算呈现子项集合,请改用数组。
非常感谢!!!!!
filters.dateFrom
是一个对象,正如您的错误消息所解释的那样,对象不能直接呈现为 React 子对象。
Date
对象可以呈现为字符串。最简单的情况如下所示。
<strong>{filters.dateFrom.toString()}</strong>
我对这个错误做了很多研究,但我发现大部分示例都是 Class 组件出现错误,而我使用的是功能组件!!这是我正在做的 React 课程的要求,我们正在做第一个项目,另一个要求是仍然不要使用 -create-react-App :(
所以,他们给了我们 React 和 Babel 脚本,这是我的 HTML 脚本:
<script
src="https://unpkg.com/react@16/umd/react.development.js"
crossorigin
></script>
<script
src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"
crossorigin
></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script type="text/babel" src="./scripts/app.js"></script>
请不要笑!!!
无效的代码是:
function App() {
const today = new Date()
console.log(today);
let filters = {
dateFrom: today,
// dateTo: new Date(today.valueOf() + 86400000),
// country: "",
// price: 0,
// rooms: 0,
};
return (
<div>
<Hero filters={filters} />
</div>
);
}
function Hero({ filters }) {
return (
<section className="hero is-primary">
<div className="hero-body">
<div className="container">
<h1 className="title">Hotels</h1>
<h2 className="subtitle">
from <strong>{filters.dateFrom}</strong> to
<strong>dddd, DD of mmmm de AAAA</strong>
</h2>
</div>
</div>
</section>
);
ReactDOM.render(<App />, document.getElementById("app"));
}
问题是 dateFrom: 今天,如果我向那里发送一个简单的字符串,它会完美地工作,但我需要在对象内部发送当前的日期,这是一个简单的应用程序寻找酒店。 类 中提供了此代码的结构(使用 const 过滤器对象和功能组件),我应该让它工作:(
我正在效仿这个 link 的例子:http://learningprogramming.net/modern-web/react-functional-components/pass-object-to-props-in-react-functional-components/ 但它使用 create-react-app...
我得到的错误是: 未捕获错误:对象作为 React 子对象无效(发现时间:2020 年 4 月 21 日星期二 11:08:12 GMT-0300(阿根廷标准时间))。如果您打算呈现子项集合,请改用数组。
非常感谢!!!!!
filters.dateFrom
是一个对象,正如您的错误消息所解释的那样,对象不能直接呈现为 React 子对象。
Date
对象可以呈现为字符串。最简单的情况如下所示。
<strong>{filters.dateFrom.toString()}</strong>