Redux不会按ID从状态数组中删除项



我不明白这段代码有什么问题,我传入ID并过滤掉状态,但它只是不会删除,不能弄清楚,会喜欢一些帮助。片:

import { createSlice } from "@reduxjs/toolkit";
const movieSlice = createSlice({
name: "movie",
initialState: { favoriteMovies: [] },
reducers: {
addMovie: (state, action) => {
state.favoriteMovies = [...state.favoriteMovies, action.payload];
},
removeMovie: (state, action) => {
state.favoriteMovies = state.favoriteMovies.filter(
(movie) => movie.imdbID !== action.payload
);
},
},
});
export const { addMovie, removeMovie } = movieSlice.actions;
export const selectMovie = (state) => state.movie.favoriteMovies;
export default movieSlice.reducer;

调度:

const MovieDetail = ({ movie }) => {
const [isFavorite, setIsFavorite] = useState(false);
const dispatch = useDispatch();
const imdbID = movie.imdbID;
const handleAddFavorite = () => {
dispatch(addMovie({ movie }));
setIsFavorite(true);
};
const handleRemoveFavorite = () => {
dispatch(removeMovie({ imdbID }));
console.log(imdbID);
setIsFavorite(false);
};
当删除

时,它不起作用,然后再添加。输入的id是正确的

使用

调度的方式
dispatch(removeMovie({ imdbID }));

imdbID最终会变成action.payload.imdbID

所以你要么访问它,要么像

那样分派
dispatch(removeMovie(imdbID));

最新更新