我试图遵循react redux模板中的反例,但我似乎无法导出自己的setOwner减速机.

ownerSelector.tsx:

export  const ownerSlice = createSlice({
  name: 'owner',
  initialState,

  reducers:{
    setOwner: (state) => {    //Export this reducer
      let own = document.getElementById("OwnerSelector") as HTMLSelectElement
      state.id = parseInt(own!!.options[own.selectedIndex].value);
    }
  },
  extraReducers: (builder) => {}
})

export const selectOwner= (state: RootState) => state.selectedOwner.id;
export default ownerSlice.reducer;

我想在carForm.tsx中输入setOwner:

import {setOwner} from './ownerSelector'; // error here


    let submitHandler = (e: React.FormEvent<HTMLElement>) => {
        e.preventDefault();

        dispatch(setOwner())
        const formData = {
            car: {
                year: year,
                make: make,
                model: model,
                price: price,
                person_id: owner,
            }
        }
        dispatch(createCarAsync(formData));
        resetState();
    }

导入时的错误是:Module '"./ownerSelector"' has no exported member 'setOwner'. Did you mean to use 'import setOwner from "./ownerSelector"' instead?ts(2614)

我做错了什么?谢谢

推荐答案

在redux工具箱和任何redux中,您都需要分派操作.

export const { setOwner } = ownerSlice .actions 
//now you can use it in dispatch 

Javascript相关问答推荐

为什么函数不使用以前函数返回的参数?

为什么我会获取MUI Date TimePicker TypHelp:Value.isValid不是AdapterDayjs.isValid中的函数

为什么我无法使用useMemo()停止脚本渲染?

如何使用Paged.js仅渲染特定页面

JavaScript文本区域阻止KeyDown/KeyUp事件本身上的Alt GR +键组合

Bootstrap动态选项卡在切换选项卡后保持活动状态,导致元素堆叠

在JavaScript中声明自定义内置元素不起作用

使用javascript将Plotly Expandable Sparkline转换为HighCharter Plot在bslib卡中

在Vite React库中添加子模块路径

为什么!逗号和空格不会作为输出返回,如果它在参数上?

html + java script!需要帮助来了解为什么我得到(无效的用户名或密码)

为什么按钮会随浮动属性一起移动?

在JS中拖放:检测文件

如何通过将实例方法的名称传递给具有正确类型的参数的继承方法来调用实例方法?

Angular 形式,从DOM中删除不会删除指定索引处的内容,但会删除最后一项

使用auth.js保护API路由的Next.JS,FETCH()不起作用

邮箱密码重置链接不适用于已部署的React应用程序

AJAX POST在控制器中返回空(ASP.NET MVC)

JavaScript:如果字符串不是A或B,则

将多个文本框中的输出合并到一个文本框中