redux分派仅在全局范围的nextjs中工作

oipij1gg  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(120)

在我的组件中,我能够调度我的redux操作,它像它应该的那样工作。

export default function Skilling({ items, stats }) {
 const dispatch = useDispatch();
 dispatch(loginActions.fetchItems(items));
 dispatch(loginActions.getBalance(stats));
}

我也有一个buyItem()函数的按钮。当点击按钮时,redux不会被调度。我的函数在loginActions中被调用,但没有调度。
相同的分派(dispatch(loginActions.fetchItems(items)))在全局范围内工作。

export default function Skilling({ items, stats }) {
 const dispatch = useDispatch();
 dispatch(loginActions.fetchItems(items));   /* action works */
 dispatch(loginActions.getBalance(stats));   /* action works */
 async function buyItem(title) {
 if (title === "arg") {
 let { error } = await supabase
          .from("itemCollection")
          .upsert(updateSturmhaube, {
            returning: "minimal", // Don't return the value after inserting
          });

 dispatch(loginActions.fetchItems(items));   /* action not working */

 if (error) {
 throw error;
        }
      }

 return (
 <div> 
 <button
 onClick={() => buyItem("arg")}
 className="btn btn-light"
 >
        Button
 </button>
 </div>
      )
}
}
l7mqbcuq

l7mqbcuq1#

你好像漏了一个括号

export default function Skilling({ items, stats }) {
  const dispatch = useDispatch();
  dispatch(loginActions.fetchItems(items)); 
  dispatch(loginActions.getBalance(stats)); 

  async function buyItem(title) {
    if (title === "arg") {
      let { error } = await supabase
        .from("itemCollection")
        .upsert(updateSturmhaube, {
          returning: "minimal", 
        });

      dispatch(loginActions.fetchItems(items));

      if (error) {
        throw error;
      }
    }
  } // Added bracket

  return (
    <div>
      <button onClick={() => buyItem("arg")} className="btn btn-light">
        Button
      </button>
    </div>
  );
} // Removed bracket

相关问题