export const useSocketDataStore = create((set) => ({
socketConnection: {},
setSocketConnection: (connection) => set({ socketConnection: connection }),
latestBidsFromSocket: [],
setLatestBidsFromSocket: (bids) => set({ latestBidsFromSocket: bids }),
}));
import { useSocketDataStore } from './store';
export const useUpdateSocketDataStore = () => {
const { latestBidsFromSocket, setLatestBidsFromSocket } =
useSocketDataStore();
const updateLatestBidsSocket = (data) => {
setLatestBidsFromSocket([data].concat(latestBidsFromSocket));
};
return { updateLatestBidsSocket };
};
我使用这个自定义钩子来更新祖站商店。但是,当我试图将新值连接到latestBidsFromSocket中时,会丢失它中的旧数据。
发布于 2022-06-11 13:39:08
我把问题解决了。是因为那封信。传递给updateLatestBidsSocket函数的updateLatestBidsSocket值在updateLatestBidsSocket的每个函数调用中保持不变。
我更正了代码如下所示。
import { useEffect, useState } from 'react';
import { useSocketDataStore } from './store';
export const useUpdateSocketDataStore = () => {
const { latestBidsFromSocket, setLatestBidsFromSocket } =
useSocketDataStore();
const [latestBidSocketData, setLatestBidSocketData] = useState({});
useEffect(() => {
if (Object.keys(latestBidSocketData).length) {
setLatestBidsFromSocket(
[latestBidSocketData].concat(latestBidsFromSocket)
);
}
}, [latestBidSocketData]);
return { setLatestBidSocketData };
};
发布于 2022-06-11 12:55:46
怎么样:...data,...latestBidsFromSocket --我从来没有遇到过用这种方式连接数组的问题。
https://stackoverflow.com/questions/72584409
复制相似问题