如何在db.json中保存新状态?



我有一个数组在我的db.json。我可以添加一个新对象。但是每次重新加载页面时,数据都会重置为默认状态。如何存储数据,使其写入数据库。Json并在重新加载时显示?

我db.json:

{"item": [
{
"text": "Пошел в свой первый класс",
"id": 0,
"data": {
"year": 2012,
"day": 25,
"month": 1
}
},
{
"text": "Поехал на чемпионат по бейсболу",
"id": 1,
"data": {
"year": 2018,
"day": 14,
"month": 3
}
},
{
"text": "Поступил в институт",
"id": 2,
"data": {
"year": 2007,
"day": 12,
"month": 4
}
}
]}

我的状态:

const [value, setValue] = useState('');
const [valueYear, setValueYear] = useState('');
const [valueDate, setValueDate] = useState('');
const [valueMonth, setValueMonth] = useState('');
const [table, setTable] = useState([]);
useEffect(() => {
axios.get("http://localhost:3004/item").then(({ data }) => {
setTable(data);
})}, [])

My add function:

const addTask = (value, valueYear, valueDate, valueMonth) => {
if (value) {
const newItem = {
id: table.length,
text: value,
data: {
year: valueYear,
day: valueDate,
month: valueMonth,
},
}
setTable([...table, newItem]);
}}

要用Javascript编写文件,你需要使用NodeJS。在这种情况下,我建议您使用localStorage。当您设置表的新状态时,请输入以下代码:

setTable([...table, newItem]);
localStorage.setItem('table', [...table, newItem]);

并捕获它的初始状态,像这样:

const [table, setTable] = useState(localStorage.getItem('table') || []);
const addTask = (value, valueYear, valueDate, valueMonth) => {
if (value) {
const newItem = {
id: table.length,
text: value,
data: {
year: valueYear,
day: valueDate,
month: valueMonth,
},
}
axios.post('http://localhost:3004/item', newItem).then(() => {
setTable([...table, newItem]);
})
}}

最新更新