【问题标题】:What is the correct way of updating an object in an array?更新数组中对象的正确方法是什么?
【发布时间】:2020-02-29 16:38:30
【问题描述】:

我有一个对象数组,在我的代码中我列出了这些

{#each advances as tech}
    <Advance tech={tech} addToCart={addToCart}/>
{/each}

添加到购物车功能更新对象上的变量:

  const addToCart = (tech) =>  {
      tech.Cart = true;
  }

这不会触发反应,我应该怎么做?

【问题讨论】:

    标签: svelte svelte-3


    【解决方案1】:

    您可以这样做的一种方法是使用其索引来引用列表中的项目

    {#each advances as tech, index}
        <Advance tech={tech} on:click={() => advances[index].cart = true}/>
    {/each}
    

    示例:https://svelte.dev/repl/70d4235faefd4f1b87ad6d359d02f05b?version=3

    【讨论】:

      【解决方案2】:

      假设您想做的不仅仅是切换一个标志,您还可以这样做:

      const addToCart = (tech) =>  {
        tech.Cart = true;
        advances = advances;
      }
      

      这将强制在阵列上触发反应。

      【讨论】:

        猜你喜欢
        • 2019-10-19
        • 2021-04-18
        • 2017-03-04
        • 2010-10-03
        • 2018-12-17
        • 2021-10-09
        • 1970-01-01
        • 2017-02-06
        • 1970-01-01
        相关资源
        最近更新 更多