当导入组件需要通过操作作为道具时,打字稿mapDispatchToProps出错

时间:2019-08-17 12:01:35

标签: reactjs typescript react-redux

我是redux的新手,并尝试将其与Typescript一起使用。

我在组件中的mapDispatchProps中使用了connect(),在导入该组件时,它需要将动作传递为道具,而不应该将其作为道具。 奇怪的是,当我尝试其他操作时,这看起来还不错,但是这样做有问题。

完整的代码是 here 以及我要导入组件的index.tsx中的错误消息。

错误消息

  

类型“ {}”中缺少属性“ getInputUserName”,但类型“ Readonly>”中必需。ts(2741)   App.tsx(8,3):此处声明为“ getInputUserName”。

很高兴听到任何建议。 预先感谢!

2 个答案:

答案 0 :(得分:1)

您应该传递与Props界面中声明的名称相同的名称的操作。

所以要么试试这个-

export default connect(
  mapStateToProps,
  { getInputUserName: loginUserName }
)(App)

或这个-

interface Props {
  inputUserName: string;
  loginUserName: typeof loginUserName;
}

答案 1 :(得分:0)

您可以尝试一下吗

export default connect(
  mapStateToProps,
  { getInputUserName: loginUserName }
)(App);

干杯