【发布时间】:2020-05-25 14:38:55
【问题描述】:
我的目标是显示 3 张卡片,其中的一些数字每秒都会更新。我有一组具有名称、数字和图标属性的对象。我不知道如何只更新数字,而不是其他属性。这是我的代码:
const initialStats = [
{ name: "Twitter", numbers: 10345, icon: "twitter" },
{ name: "Facebook", numbers: 8739, icon: "facebook f" },
{ name: "Google+", numbers: 2530, icon: "google plus g" }
];
export default class Social extends React.Component {
state = {
stats: initialStats
};
componentDidMount() {
this.timer = setInterval(() => {
this.setState(prevState => ({
stats: [...prevState.stats]
}));
}, 1000);
}
componentWillUnmount() {
clearInterval(this.timer);
}
render() {
const { stats, number } = this.state;
return (
<div className="social">
<h3 className="social__title">Social</h3>
<div className="social__data">
{stats.map(stat => {
return (
<div key={stat.name} className="social__data__stats">
<div className="social__data__stats--icon">
<Icon name={stat.icon} size="big" />
</div>
<div className="social__data__stats--content">
<h4 className="social__data__stats--content--name">
{stat.name}
</h4>
<p className="social__data__stats--content--numbers">
{stat.numbers}
</p>
</div>
</div>
);
})}
</div>
</div>
);
}
}
【问题讨论】:
标签: javascript arrays reactjs object