【问题标题】:React initial state as empty array question?将初始状态反应为空数组问题?
【发布时间】:2021-11-20 16:45:04
【问题描述】:
const object1 = {name: "David", id=5};

如果我使用初始状态作为一个空数组:

const [relatedPosts, setRelatedPosts] = useState([])

然后我使用setRelatedPosts(object1)relatedPosts 会变成一个包含 object1 的数组吗?或者它只是 object1 并且 React 会忽略设置为初始值的空数组

【问题讨论】:

  • 它替换了状态,设置状态的时候要新建一个数组。
  • 第一次渲染时,它将是一个空数组。当您调用 setRelatedPosts(object1) 时,它将仅使用该对象作为状态重新渲染(数组已消失)
  • 这能回答你的问题吗? Push method in React Hooks (useState)?

标签: reactjs react-hooks


【解决方案1】:

据我所知,您问的是状态的数据类型是否将保持array!?那么答案是relatedPost 将被设置为object 如果设置为relatedPosts=object1 而不是relatedPosts=[object1]

react 会忽略初始值 ([])

【讨论】:

    【解决方案2】:

    如果你声明:

    const [relatedPosts, setRelatedPosts] = useState([]) & 然后做setRelatedPosts(object1),那么变量relatedPosts的值就变成了object1:就是这么简单。

    declaring a state variable

    【讨论】:

    • 我的意思是relatedPosts变成relatedPosts=[object1]还是relatedPosts=object1
    • 它只是变成object1,(即relatedPosts=object1
    【解决方案3】:

    请描述问题。你真正需要什么。

    我猜你的问题并尝试解决。

      const [relatedPosts, setRelatedPosts] = useState([]);
    
      const object1 = {name: "David", id:5}; //{name: "David", id=5} use ':' instead '=' when in object
    
      setRelatedPosts([object1, ...relatedPosts]);
    

    【讨论】:

    • 您好,谢谢您的回答,我的问题是我的意思是relatedPosts 变成relatedPosts=[ object1 ] 还是relatedPosts=object1 基本上object1 是否被推送到初始空数组或初始空数组被删除并且它变成object1
    猜你喜欢
    • 1970-01-01
    • 2020-03-27
    • 1970-01-01
    • 2020-10-30
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    相关资源
    最近更新 更多