反应危险的SetInnerHTML不重新渲染内容

时间:2017-12-19 20:36:30

标签: javascript reactjs

这是我的设置:

string-file.properties

someKey=This is my <span class="hello">{0}</span> string!

反应-file.jsx

import stringAPI from 'string-file';    

class MyComponent extends Component {

    get content() {
        return { __html: stringAPI.someKey(this.props.word) };
    }

    render() {
        return (
            <span dangerouslySetInnerHTML={this.content} />
        );
    }
}

stringAPI.someKey的参数替换字符串文件中的{0},然后返回最终的html字符串。我的问题是this.props.word正在更新MyComponent没有更新。

我在某处读到危险的SetInnerHTML告诉React它不需要观察html所呈现的组件的状态。如果这是真的,那么我仍然需要一种方法来做我正在尝试做的事情。

1 个答案:

答案 0 :(得分:0)

将字符串设置为state。收到新道具(componentWillReceiveProps)时,请执行setState。这应该重新渲染组件。如果不起作用,请确保在字符串更改时设置唯一键。这也迫使重新出现