如何动态导入img

时间:2020-05-14 13:52:58

标签: javascript reactjs create-react-app dynamic-import

我尝试为react hangman项目动态更改img。所以我尝试了一个状态,但是发生了一个错误,说Cannot convert object to primitive value

因此,我尝试直接传递可动态导入到img的函数,但这会造成无限循环。

这是功能

loadHangmanSvg() {
  const { attempts } = this.state
  const svgName = `hangman_${attempts}`
  import(`./assets/${svgName}.svg`).then(svgName => {
    this.setState({
      svgName
    });
  });
};

这是道具

svgHangman={this.loadHangmanSvg()}

感谢您的帮助:D

1 个答案:

答案 0 :(得分:0)

loadHangmanSvg() {
  const { attempts } = this.state
  const svgName = `hangman_${attempts}`
  import(`./assets/${svgName}.svg`).then(svgName => {
    // only when svgName is undefined, change the state of component
    if (!this.state.svgName) {
        this.setState({
            svgName
        });
    }
  });
};