feat: 处理自选股乐观更新
This commit is contained in:
@@ -340,6 +340,26 @@ const stockSlice = createSlice({
|
|||||||
delete state.historicalEventsCache[eventId];
|
delete state.historicalEventsCache[eventId];
|
||||||
delete state.chainAnalysisCache[eventId];
|
delete state.chainAnalysisCache[eventId];
|
||||||
delete state.expectationScores[eventId];
|
delete state.expectationScores[eventId];
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 乐观更新:添加自选股(同步)
|
||||||
|
*/
|
||||||
|
optimisticAddWatchlist: (state, action) => {
|
||||||
|
const { stockCode, stockName } = action.payload;
|
||||||
|
// 避免重复添加
|
||||||
|
const exists = state.watchlist.some(item => item.stock_code === stockCode);
|
||||||
|
if (!exists) {
|
||||||
|
state.watchlist.push({ stock_code: stockCode, stock_name: stockName || '' });
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 乐观更新:移除自选股(同步)
|
||||||
|
*/
|
||||||
|
optimisticRemoveWatchlist: (state, action) => {
|
||||||
|
const { stockCode } = action.payload;
|
||||||
|
state.watchlist = state.watchlist.filter(item => item.stock_code !== stockCode);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
extraReducers: (builder) => {
|
extraReducers: (builder) => {
|
||||||
@@ -461,7 +481,9 @@ export const {
|
|||||||
updateQuote,
|
updateQuote,
|
||||||
updateQuotes,
|
updateQuotes,
|
||||||
clearQuotes,
|
clearQuotes,
|
||||||
clearEventCache
|
clearEventCache,
|
||||||
|
optimisticAddWatchlist,
|
||||||
|
optimisticRemoveWatchlist
|
||||||
} = stockSlice.actions;
|
} = stockSlice.actions;
|
||||||
|
|
||||||
export default stockSlice.reducer;
|
export default stockSlice.reducer;
|
||||||
|
|||||||
Reference in New Issue
Block a user