我要导出此文件中的对象, config.js:
const CURRENT_YEAR = ( new Date() ).getFullYear()
export default { CURRENT_YEAR }
当我将其导入footer.js时:
import React from 'react'
import CURRENT_YEAR from '../../config'
const footer = () => (
<div >
@NBA { CURRENT_YEAR } All rights reserved.
</div>
)
export default footer
cli中没有错误,但是React抛出此错误:
Objects are not valid as a React child (found: object with keys {CURRENT_YEAR}). If you meant to render a collection of children, use an array instead.
答案 0 :(得分:1)
按如下方式删除导出文件中的括号:
const CURRENT_YEAR = ( new Date() ).getFullYear()
export default CURRENT_YEAR
否则,您将Date封装到一个对象中,或者也可以这样做:
在config.js中:
const CURRENT_YEAR = new Date().getFullYear();
const config = {
CURRENT_YEAR
};
export default config;
在footer.js中:
import React from "react";
import ReactDOM from "react-dom";
import "./styles.css";
import config from "../../config";
function App() {
return <div>
@NBA {config.CURRENT_YEAR} All rights reserved.
</div>;
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
答案 1 :(得分:0)
问题是您将导出文件包装在{}
中,这会将CURRENT_YEAR
变成了一个看起来像这样的对象:
{ CURRENT_YEAR: 2019 }
只需将其导出为:
export default CURRENT_YEAR
然后CURRENT_YEAR
可以保留其值。
答案 2 :(得分:0)
您没有正确导出变量,您需要像这样导出
const CURRENT_YEAR = ( new Date() ).getFullYear()
export default CURRENT_YEAR;
footer.js中的其他CURRENT_YEAR
将是像{CURRENT_YEAR: ( new Date() ).getFullYear()}
这样的对象
答案 3 :(得分:0)
不要在花括号中使用export default
。只是export default
:
export default CURRENT_YEAR;
如果将其包裹在花括号中,则其评估方式如下:
export default {{ date: 6/12/2019 };
哪个无效。
答案 4 :(得分:0)
我发现可以通过销毁来解决它,因此footer.js可以是这样的:
import React from 'react'
import style from './footer.css'
import { Link } from 'react-router-dom'
import YEAR from '../../config'
const { CURRENT_YEAR } = YEAR
const footer = () => (
<div className={ style.right } >
@NBA { CURRENT_YEAR } All rights reserved.
</div>
)