如何在不删除reactj的前一个cookie的情况下设置和存储和更新cookie

发布于 2025-01-24 05:32:34 字数 1584 浏览 3 评论 0原文

如何编写一个cookie,该cookie在用户提交表单时保存输入值.....以及表单再次提交时,请在不删除先前保存的值的情况下更新cookie

export default function setcookie() {
  const [ name, setName ] = useState('');
  const [ email, setEmail ] = useState('');
  const [ mobile, setMobile ] = useState('');


  const cookie = () => {
    localStorage.setItem("Names", name);
    localStorage.setItem("Emails", email);
    localStorage.setItem("Mobiles", mobile);
  }
  const Data = () => {

    const names = localStorage.getItem("Names");
    const emails = localStorage.getItem("Emails");
    const mobiles = localStorage.getItem("Mobiles");

    return names + emails + mobiles;
  }
    return (
        <div>
        <div className='page-wrapper d-inline-block'>
        <TextField id="standard_name" onChange={(e) => setName(e.target.value)} value={name} type="text" name="name" dir='rtl' label="FullName" variant="standard" />
        <TextField id="standard_email"onChange={(e) => setEmail(e.target.value)} value={email} type="text" name="email" dir='rtl' label="Email" variant="standard" />
        <TextField id="standard_number"onChange={(e) => setMobile(e.target.value)} value={mobile} type="number" name="mobile" dir='rtl' label="Phone Number" variant="standard" />
        <TextField id="standard-message" type="text" name="message" dir='rtl' label="Message" variant="standard" />
        <All.Button variant='outlined' name="btn" onClick={cookie}>sa</All.Button>
          </div>
          <Data />
      </div>
    );
  }

How to write a cookie that saves inputs values when the user submits the form..... And when the form is submitted again, update the cookie without deleting the previously saved values

export default function setcookie() {
  const [ name, setName ] = useState('');
  const [ email, setEmail ] = useState('');
  const [ mobile, setMobile ] = useState('');


  const cookie = () => {
    localStorage.setItem("Names", name);
    localStorage.setItem("Emails", email);
    localStorage.setItem("Mobiles", mobile);
  }
  const Data = () => {

    const names = localStorage.getItem("Names");
    const emails = localStorage.getItem("Emails");
    const mobiles = localStorage.getItem("Mobiles");

    return names + emails + mobiles;
  }
    return (
        <div>
        <div className='page-wrapper d-inline-block'>
        <TextField id="standard_name" onChange={(e) => setName(e.target.value)} value={name} type="text" name="name" dir='rtl' label="FullName" variant="standard" />
        <TextField id="standard_email"onChange={(e) => setEmail(e.target.value)} value={email} type="text" name="email" dir='rtl' label="Email" variant="standard" />
        <TextField id="standard_number"onChange={(e) => setMobile(e.target.value)} value={mobile} type="number" name="mobile" dir='rtl' label="Phone Number" variant="standard" />
        <TextField id="standard-message" type="text" name="message" dir='rtl' label="Message" variant="standard" />
        <All.Button variant='outlined' name="btn" onClick={cookie}>sa</All.Button>
          </div>
          <Data />
      </div>
    );
  }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

彼岸花似海 2025-01-31 05:32:34

我假设name,<代码>电子邮件和Mobiles都存储为数组?

localstorage仅支持字符串。但是您可以使用json.stringify()将数组转换为JSON字符串

const handleFormSubmit = () => {
  // validate form data or whatever...
  saveInputsToLocalStorage()
}

const saveInputsToLocalStorage = () => {
  const prevSavedInputs = loadInputsFromLocalStorage()
  
  for (const input in prevSavedInputs) {
    let inputArray = prevSavedInputs[input] || []
    
    let value
    switch (input) {
      case 'Names':
        value = name
        break
      case 'Emails':
        value = email
        break
      case 'Mobiles':
        value = mobile
        break
    }
    
    localStorage.setItem(input, JSON.stringify([...inputArray, value]))
  }
}

const loadInputsFromLocalStorage = () => {
  const names = localStorage.getItem('Names')
  const emails = localStorage.getItem('Emails')
  const mobiles = localStorage.getItem('Mobiles')
  
  return {
    Names: names ? JSON.parse(names) : null,
    Emails: emails ? JSON.parse(emails) : null,
    Mobiles: mobiles ? JSON.parse(mobiles) : null
  }
}

I'm assuming Names, Emails, and Mobiles are all stored as Arrays?

localStorage only supports Strings. But you can convert arrays to JSON Strings with JSON.stringify()

const handleFormSubmit = () => {
  // validate form data or whatever...
  saveInputsToLocalStorage()
}

const saveInputsToLocalStorage = () => {
  const prevSavedInputs = loadInputsFromLocalStorage()
  
  for (const input in prevSavedInputs) {
    let inputArray = prevSavedInputs[input] || []
    
    let value
    switch (input) {
      case 'Names':
        value = name
        break
      case 'Emails':
        value = email
        break
      case 'Mobiles':
        value = mobile
        break
    }
    
    localStorage.setItem(input, JSON.stringify([...inputArray, value]))
  }
}

const loadInputsFromLocalStorage = () => {
  const names = localStorage.getItem('Names')
  const emails = localStorage.getItem('Emails')
  const mobiles = localStorage.getItem('Mobiles')
  
  return {
    Names: names ? JSON.parse(names) : null,
    Emails: emails ? JSON.parse(emails) : null,
    Mobiles: mobiles ? JSON.parse(mobiles) : null
  }
}
咋地 2025-01-31 05:32:34

您可以使用数组存储日期并显示LocalStorage或Cookie的数据

export default function setcookie() {
  const [ name, setName ] = useState('');
  const [ email, setEmail ] = useState('');
  const [ mobile, setMobile ] = useState('');


  const cookie = () => {
    let data = {
     Names: name,
     Emails:email,
     Mobiles:mobile
   }
    let Datas = localStorage.getItem("Datas") ? localStorage.getItem("Datas") : []
    Datas.push(data)
    localStorage.setItem("Datas", Datas);
  }
  const Data = () => {

    const Datas= localStorage.getItem("Datas");
    if (Datas){
     let data =  Datas[Datas.length - 1]
     return data.name +   data.emails + data.mobiles;
   }

    return '';
  }
    return (
        <div>
        <div className='page-wrapper d-inline-block'>
        <TextField id="standard_name" onChange={(e) => setName(e.target.value)} value={name} type="text" name="name" dir='rtl' label="FullName" variant="standard" />
        <TextField id="standard_email"onChange={(e) => setEmail(e.target.value)} value={email} type="text" name="email" dir='rtl' label="Email" variant="standard" />
        <TextField id="standard_number"onChange={(e) => setMobile(e.target.value)} value={mobile} type="number" name="mobile" dir='rtl' label="Phone Number" variant="standard" />
        <TextField id="standard-message" type="text" name="message" dir='rtl' label="Message" variant="standard" />
        <All.Button variant='outlined' name="btn" onClick={cookie}>sa</All.Button>
          </div>
          <Data />
      </div>
    );
  }

you can use array to store date and display data from localStorage or cookie

export default function setcookie() {
  const [ name, setName ] = useState('');
  const [ email, setEmail ] = useState('');
  const [ mobile, setMobile ] = useState('');


  const cookie = () => {
    let data = {
     Names: name,
     Emails:email,
     Mobiles:mobile
   }
    let Datas = localStorage.getItem("Datas") ? localStorage.getItem("Datas") : []
    Datas.push(data)
    localStorage.setItem("Datas", Datas);
  }
  const Data = () => {

    const Datas= localStorage.getItem("Datas");
    if (Datas){
     let data =  Datas[Datas.length - 1]
     return data.name +   data.emails + data.mobiles;
   }

    return '';
  }
    return (
        <div>
        <div className='page-wrapper d-inline-block'>
        <TextField id="standard_name" onChange={(e) => setName(e.target.value)} value={name} type="text" name="name" dir='rtl' label="FullName" variant="standard" />
        <TextField id="standard_email"onChange={(e) => setEmail(e.target.value)} value={email} type="text" name="email" dir='rtl' label="Email" variant="standard" />
        <TextField id="standard_number"onChange={(e) => setMobile(e.target.value)} value={mobile} type="number" name="mobile" dir='rtl' label="Phone Number" variant="standard" />
        <TextField id="standard-message" type="text" name="message" dir='rtl' label="Message" variant="standard" />
        <All.Button variant='outlined' name="btn" onClick={cookie}>sa</All.Button>
          </div>
          <Data />
      </div>
    );
  }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文