【问题标题】:How to save data after reloading the page重新加载页面后如何保存数据
【发布时间】:2021-07-28 02:03:22
【问题描述】:

我有可以帮助我创建待办事项列表的工作代码。一切都运行良好。当我单击“Enter”键时,我的页面会重新加载。同样,重新加载页面后,所有创建的元素都会消失。我有 2 个问题:您能否展示如何在重新加载后保存所有创建的元素以及如何通过按“Enter”来避免重新加载?非常感谢

import React, {useState} from "react";

export function Creating_List () {

let [allTasks, setAllTasks] = useState([]);
let [input, setInput] = useState('');

let addTask = (myInput) => {
    if (myInput){
        let newTask = {
            id: Math.random().toString(36).substr(2,9),
            task: myInput,
            complete: false
        }
            setAllTasks([...allTasks, newTask])
    }
}

let taskDone = (id) => {
    setAllTasks([allTasks.filter((todo => todo.id !== id))])
}

let handleInput = (e) => {
    setInput(e.currentTarget.value)
}

let submitTask = (e) => {
    e.preventDefault();
    addTask(input);
    setInput('');
}

return (<div className='tasks'>
            <h1>Список задач {allTasks.length}</h1>

            <form>
                <input
                    type="text"
                    value={input}
                    onChange={handleInput}
                    placeholder="Нове завдання"
                />
            </form>
            <button onClick={submitTask} type="submit">Створити</button>

            <div>
            {allTasks.map(el => <div key={el.id}>{el.task} <button onClick={taskDone}>Виконано</button> </div>)}
            </div>

        </div>)
}

【问题讨论】:

  • 放置按钮type="button".

标签: javascript reactjs local-storage


【解决方案1】:

将您的&lt;form&gt; 更改为&lt;form onSubmit = {submitTask}&gt;,这将防止页面在输入时重新加载,因为您有e.preventDefault()。如果您希望数据在重新加载后保持不变,可以使用localStorageFirebaseMongoDB 之类的数据库,也可以使用Node.js 创建自己的后端。

【讨论】:

  • 你能告诉我如何在这里使用localStorage吗?谢谢
  • @Ronald 用localStorage.setItem('key', 'value') 设置一个变量,然后用localStorage.getItem('key') 检索它
猜你喜欢
  • 2021-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-27
  • 1970-01-01
  • 2020-02-16
  • 2015-11-23
相关资源
最近更新 更多