从React开始的每个人都有可能在道具和状态之间感到困惑。
有一个共同的区别,就是如果某个组件需要在某个时间点更改其属性之一,则应使用状态,否则应为道具。
我决定在页脚中实施版权保护日期。您可以在下面的示例中看到它:
numpy.where()
一开始我决定继续一个状态,但是现在我开始怀疑,这个小代码片段是否真的需要一个状态?如果是,我应该在哪里包含setState?我应该创建setInterval并使其每年更改还是应该通过道具传递它?
我只将起始年份或版权年度定为一个常数,并将当年更改时自动更新为当前年份。
答案 0 :(得分:3)
我都不用:
const Footer = () => {
const copyrightYear = new Date("2019").getFullYear();
const currentYear = new Date().getFullYear();
const year = currentYear === copyrightYear
? (
<h3>
Copyright © {this.state.copyrightYear}. Company Name
</h3>
)
: (
<h3>
Copyright © {copyrightYear} - {currentYear}. Company Name
</h3>
)
return (
<footer className="footer">
<div className="copyright">{year}</div>
</footer>
);
};
或者,您知道现在已经不是2019年了,所以您可以渲染
<footer className="footer">
<div className="copyright">2019 - {new Date().getFullYear()}</div>
</footer>