我尝试为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
答案 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
});
}
});
};