我有一个.js文件,其中包含一个将作为数据导入的数组。例如,它将如下所示:
const ideasData = [
{
content:"Content",
title: "This Title",
date: new Date()
},
{
content:"content2",
title: "second title",
date: new Date()
}
]
export default ideasData
导出是必需的,因为我会将数据导入另一个文件中。我使用程序中的数据,然后将对其进行整体修改。
import ideasData from "./ideasData";
class Ideas extends Component{
constructor() {
super()
this.state = {
ideas : ideasData
}}}
我想每隔几秒钟以类似的格式(文件,然后是导出)覆盖文件中的数据作为自动保存。因此,下次我打开网页时,它将看起来像是关闭时一样。
在返回之前,我在类中放置了函数autoSave()
,然后在render方法中放置了setInterval(this.autoSave, 5000)
。我不确定如何将数组this.state.ideas
保存到ideaData文件。另外,我不确定要将setInterval放在render方法中。我将其更改为setInterval(console.log("saved"),5000)
,它似乎只在控制台中记录过一次。
答案 0 :(得分:1)
所以,我们已经在这里保存您的文件了
const ideasData = [
{
content:"Content",
title: "This Title",
date: new Date()
},
{
content:"content2",
title: "second title",
date: new Date()
}
]
export default ideasData
现在,您要做的就是导出一个set方法(与上面的代码位于同一文件中),例如:
export function update(newData) {
ideasData = newData;
}
您必须将const
更改为let
才能对其进行突变,否则,您可以清除它并推送新数据,也可以使用自己的状态创建一个Class。无论哪种方式。
现在,当setInterval(this.autoSave, 5000)
运行时,只需导入新的update
函数,然后调用update(this.state.ideas)
即可更新数据缓存。