this.states由Reactjs中的构造函数中的单独函数初始化

时间:2016-10-27 15:02:45

标签: reactjs react-router react-jsx reactjs-flux

  

有时候所有this.states都是由单独的函数初始化而来的   Reactjs中的构造函数。我可以知道为什么吗?

例如:

class Articles extends React.Component {
    constructor(props) {
        super(props);
        this.initializer();
    }
    initializer(){
        this.state = {
            selectedArticle: this.props.article[0],
            showArticleDetails: true,
            showArticleContent: false
        };
    }
}

之后this.initializer();在我们需要的任何地方使用。

1 个答案:

答案 0 :(得分:1)

这只是开发人员的偏好问题。状态可能已在构造函数()内初始化,但在这种情况下,开发人员已选择将初始化代码放在单独的函数中以便清楚。它具有相同的效果。

顺便说一句,你说'this.initializer()在我们需要的地方使用。'一旦从构造函数中调用initializer(),就不应该再次调用它。相反,你应该使用

this.setState({ newKey: newValue, ...})