【问题标题】:React useState - how to put array of objects into stateReact useState - 如何将对象数组放入状态
【发布时间】:2019-06-19 23:03:02
【问题描述】:

我有一个 React 应用程序,我正在从 RESTful API 中提取数据。响应中的数据是一个对象数组。我正在尝试获取该信息并使用 useState 将其存储在 React 状态中,然后将其呈现为页面上的列表。

我通过将一些虚拟对象数组分配给book 来伪造下面链接中的 API,然后尝试将其设置为状态,但它不起作用。任何想法如何将其传递给状态然后将其显示在页面上?

https://codesandbox.io/s/adoring-sunset-1ejxi

【问题讨论】:

  • const [yourArray, setYourArray] = useState([]);然后 setYourArray(pass here the response of your request.) 它会更新你的数组 (yourArray) 然后你可以使用 yourArray.map(item => { console.log(item) } ) 进行迭代
  • useEffect(books => { useEffect 回调没有任何参数。将该行更改为useEffect(() => {
  • @JS_Dev 请在您的问题中包含代码。

标签: arrays reactjs state react-hooks


【解决方案1】:

不要将books 作为useEffect 回调中的参数传递。您需要参考外部范围的书籍

  useEffect(() => {
     setBookList(books);
  }, []);

在这种情况下,它将在组件主体中引用books

  useEffect(() => {
     fetch('some_url).then(res => res.json()).then(books => setBookList(books)); 
  }, []);

【讨论】:

    猜你喜欢
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 2023-03-14
    • 2021-11-13
    • 2021-12-14
    相关资源
    最近更新 更多