reactjs 如何在不清除状态数据的情况下将输入值推送到状态?

2fjabf4q  于 2023-02-22  发布在  React
关注(0)|答案(2)|浏览(118)

我有这个

const [title, setTitle] = useState("");

在我从我的后端API获取数据之后,我将状态设置为响应。例如"Hello"。所以此时标题将是"Hello"。
我有一个文本区域,其值为"title",并且在更改时我设置了标题(例如,目标标题)。
我希望它把从文本区得到的值附加到状态,但它不是这样工作的。

<textarea
      placeholder="Title"
      type="text"
      value={title}
      onChange={(e) => {
        setTitle(e.target.value);
      }}
    >
      </textarea>
ifmq2ha2

ifmq2ha21#

useState可以得到之前的数据然后你可以像这样把你想要的附加到它上面。

setTitle((prev)=> prev + e.target.value);
1rhkuytd

1rhkuytd2#

您可以在提取数据后将该值设置为状态,如下所示

import { useEffect, useState } from "react";

export default function App() {
 const [state, setState] = useState("");

 useEffect(() => {
  fetch('http://example.com/songs')
  .then(response => response.json())
  .then(data => setState(data))
  .catch(err => console.error(err));
 }, []);
  return (
   <div className="App">
    <h1>Hello textarea</h1>
    <textarea
      value={state}
      onChange={(e) => setState(() => e.target.value)}
                    or
      onChange={e=>setState(e.target.value)}
    />
  </div>
 );
}

相关问题