WebStorm 中的 Redux-toolkit 操作参数

And*_*tin 5 webstorm reactjs redux redux-toolkit

我开始使用 redux 工具包,但是当我尝试发送带有参数的操作时,我收到来自 IDE 的警告说:

“参数类型 {...} 不可分配给参数类型 {payload: {...}}”
参数类型 {...} 不可分配给参数类型 {payload: {...}}

或“无效的参数数量,预期为 2”
参数数量无效,应为 2

我猜它认为国家应该是第一个论点。

有什么办法可以纠正这个吗?

编辑:我为这个特定问题找到了一个临时解决方案。基本上,我所做的是将这些操作移出文件。

如果之前我有:

// reducer.js
const state = createSlice({
  // ...
  reducers: {
    handleNumber(state, action){}
  }
})

export const { handleNumber } = state.actions
export default state.reduer
Run Code Online (Sandbox Code Playgroud)

我现在有:

// reducer.js
export const state = createSlice({
  // ...
  reducers: {
    handleNumber(state, action){}
  }
})

export default state.reducer
Run Code Online (Sandbox Code Playgroud)
// actions.js
import { state } from './reducer'

export const { handleNumber } = state.actions
Run Code Online (Sandbox Code Playgroud)

正如评论中所说。如果这些名称在同一个文件中,Webstorm 似乎模式匹配的东西。但是如果它们在单独的文件中,它会查看打字稿定义。

但它引发了另一个问题,现在当我 Ctrl + 单击 中的函数名称时actions.js,它不是转到函数,而是导航到类型声明。

phr*_*hry 4

RTK 联合维护者在这里。这看起来很奇怪,而且绝对应该有效。我想更深入地研究这一点。您能否创建一个包含此问题的复制存储库并将其发布到我们的 github 问题跟踪器?