Javascript CreateEntityAdapter中的SetAll不使用react redux toolkit设置状态

Javascript CreateEntityAdapter中的SetAll不使用react redux toolkit设置状态,javascript,reactjs,react-redux,redux-toolkit,Javascript,Reactjs,React Redux,Redux Toolkit,我试图在我的新网站中使用Redux工具包,但在使用createEntityAdapter时遇到问题 我正在从我的数据库中提取一些数据,但我的状态从未用提取的数据更新,我不明白为什么 我的切片和提取功能: export const getTransports = createAsyncThunk('marketplace/transports/getTransports', async email => { const response = await axios.get(`${AP

我试图在我的新网站中使用Redux工具包,但在使用createEntityAdapter时遇到问题

我正在从我的数据库中提取一些数据,但我的状态从未用提取的数据更新,我不明白为什么

我的切片和提取功能:

export const getTransports = createAsyncThunk('marketplace/transports/getTransports', async email => {
    const response = await axios.get(`${API_URL}/transport/published/company/${email}/notActive`);
    console.log('response', response);
    const data = await response.data;
    console.log('DATA', data);
    return data;
});

const transportsAdapter = createEntityAdapter({});

export const { selectAll: selectTransports, selectById: selectTransportById } = transportsAdapter.getSelectors(
    state => state.marketplace.transports
);

const transportsSlice = createSlice({
    name: 'marketplace/transports',
    initialState: transportsAdapter.getInitialState({
        searchText: ''
    }),
    reducers: {
        setTransportsSearchText: {
            reducer: (state, action) => {
                state.searchText = action.payload;
            },
            prepare: event => ({ payload: event.target.value || '' })
        },
        extraReducers: {
            [getTransports.fulfilled]: transportsAdapter.setAll
        }
    }
});

export const { setTransportsSearchText } = transportsSlice.actions;

export default transportsSlice.reducer;
数据提取工作正常,请求和取消完全填充之间的状态看起来工作正常,但正如您在控制台中看到的,传输状态从未更新

我不明白为什么不使用transportsAdapter的setAll功能。 正在检索的实体具有和id以及实体信息,因此它应该可以正常工作,但不能正常工作

我希望你能帮助我


非常感谢。

在接下来的过程中,我也面临着同样的问题

我通过为函数
setAll()
指定参数并使用生成器回调方法修复了它


const transportsSlice = createSlice({
    name: 'marketplace/transports',
    initialState: transportsAdapter.getInitialState({
        searchText: ''
    }),
    reducers: {
        setTransportsSearchText: {
            reducer: (state, action) => {
                state.searchText = action.payload;
            },
            prepare: event => ({ payload: event.target.value || '' })
        },
        extraReducers: (builder) => {
            builder.addCase(getTransports.fulfilled, (state, action) => {
              transportsAdapter.setAll(state, action.payload);
        });
    },
});

我也面临着同样的问题

我通过为函数
setAll()
指定参数并使用生成器回调方法修复了它


const transportsSlice = createSlice({
    name: 'marketplace/transports',
    initialState: transportsAdapter.getInitialState({
        searchText: ''
    }),
    reducers: {
        setTransportsSearchText: {
            reducer: (state, action) => {
                state.searchText = action.payload;
            },
            prepare: event => ({ payload: event.target.value || '' })
        },
        extraReducers: (builder) => {
            builder.addCase(getTransports.fulfilled, (state, action) => {
              transportsAdapter.setAll(state, action.payload);
        });
    },
});