我试图在ComponentDidMount上调度一个动作,但是它永远无法正常工作。

情况是:
我创建了一个函数来在精简器上切换语言,该精简器将语言初始化为浏览器语言。我想在调用组件时将语言更改为API上可用的第一语言。

我从StackOverflow尝试了很多东西,但我不明白为什么将函数放在呈现器上(onClick,onScroll)可以正常工作,但是在我的componentDidMount上却不能。

这是我的代码:

import {switchLanguage} from '../actions/langs'

class Header extends Component {
  constructor(props) {
    super(props);

    this.state = {
      langs: langs
    };

    let switchLanguage = this.props.switchLanguage;
  }

  componentDidMount() {
    switchLanguage(1, 'fr')
  }

  render() {
    [...]
  }
}

function mapStateToProps(state) {
  return {langId: state.languageReducer.id, language: state.languageReducer.language}
}

function mapDispatchToProps(dispatch) {
  return {
    switchLanguage: (id, lang) => dispatch(switchLanguage(id, lang))
  }
}

Header = connect(mapStateToProps, mapDispatchToProps)(Header);

export default injectIntl(Header);


我是Redux的新手,我只是按照redux教程进行操作。

有人能帮我吗?

最佳答案

我认为您应该在this.props.switchLanguage(1, 'fr')上致电componentDidMount

10-07 15:32