我们增加了 _loadComments
和 _saveComments
分别用于加载和保存评论列表数据。用户每次提交评论都会把评论列表数据保存一次,所以我们在 handleSubmitComment
调用 _saveComments
方法;而在 componentWillMount
中调用 _loadComments
方法,在组件开始挂载的时候把评论列表数据加载出来 setState
到 当中,组件就可以渲染从 LocalStorage 从加载出来的评论列表数据了。
现在发布评论,然后刷新可以看到我们的评论并不会像以前一样消失。非常的不错,持久化评论的功能也完成了。
显示评论发布时间
在评论列表项上显示评论,修改 src/comment.js
:
每个 Comment
组件实例会保存一个 timeString
状态,用于该评论显示发布了多久。_updateTimeString
这个私有方法会根据 props.comment
里面的 createdTime
来更新这个 :计算当前时间和评论发布时间的时间差,如果已经发布 60 秒以上就显示分钟,否则就显示秒。然后 componentWillMount
会在组件挂载阶段调用 _updateTimeString
更新一下这个字符串,render()
方法就把这个显示时间差的字符串渲染到一个 <span>
上。
这时候的时间是不会自动更新的。除非你手动刷新页面,否则永远显示“1 秒前”。我们可以在 componentWillMount
中启动一个定时器,每隔 5 秒调用一下 _updateTimeString
,让它去通过 setState
更新 :
因为第三方评论工具有问题,对本章节有任何疑问的朋友可以移步到 React.js 小书的论坛 发帖,我会回答大家的疑问。