【发布时间】:2020-06-03 01:27:51
【问题描述】:
我是 React 的新手,我正在尝试从一个方法返回一个 JSX,代码如下:
import React, { useReducer } from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import * as serviceWorker from './serviceWorker';
const formatName = (user) => {
return user.firstName + ' ' + user.lastName;
}
const getGreeting = (user) => {
if (user) {
return {greeting}
}
else {
return {forbidden}
}
}
const user = {
firstName: 'John',
lastName: 'Smith'
};
const greeting = (
<h1>Hello {formatName(user)}</h1>
);
const forbidden = (
<h1>Hello stranger!</h1>
);
const element = (
<div>{getGreeting(user)}</div>
);
ReactDOM.render(
element, document.getElementById('root')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root"></div>
如您所见,element 包含一个我希望渲染的 div getGreeting,因为user == true,它应该返回greeting,它调用方法formatName。但是它返回一个错误:
Error: Objects are not valid as a React child (found: object with keys {greeting}). If you meant to render a collection of children, use an array instead.
我在这里做错了什么?
【问题讨论】:
-
如果您发现任何答案有帮助 - 请接受一个作为正确答案。
标签: javascript reactjs