WebStorm 中的 Redux 工具包操作参数

Redux-toolkit action arguments in WebStorm

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

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

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

我猜它认为状态应该是第一个参数。

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

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

如果我之前有:

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

export const { handleNumber } = state.actions
export default state.reduer

现在我有:

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

export default state.reducer
// actions.js
import { state } from './reducer'

export const { handleNumber } = state.actions

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

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

RTK co-maintainer 这里。这看起来很好奇,应该绝对有效。 我想更深入地研究一下。您能否创建一个包含此问题的复制存储库并将其 post 发送到我们的 github 问题跟踪器?

我遇到过类似的问题,我不确定是什么导致了这个问题,但我发现 removing/renaming 您的(隐藏).idea 文件夹很有用。之后重新启动 Webstorm,它应该会生成一个新的 .idea 文件夹。

所以问题似乎是 Webstorm IDEA 默认设置中的某些东西导致了这个问题。如果您不确定是否要保留某些设置,请务必先重命名 .idea 文件夹。

希望这有效!

我遇到了同样的问题,但是删除了 .idea 并重新启动了 ide。