2016-06-13 90 views
23

在反应组件中,最好是在构造函数()或componentWillMount()中设置初始状态?在构造函数或componentWillMount中设置初始反应组件状态?

export default class MyComponent extends React.Component{ 
    constructor(props){ 
    super(props); 
    this.setState({key: value}); 
    } 
} 

export default class MyComponent extends React.Component{ 
    componentWillMount(props){ 
    this.setState({key: value}); 
    } 
} 
+0

http://stackoverflow.com/questions/38137740/which-kinds-of-initialization-is-more-appropriate-in-constructor-vs-componentwil –

回答

34

在构造函数中使用ES6类时,但不使用setState API是最好的,而做像这样:

export default class MyComponent extends React.Component{ 
    constructor(props){ 
    super(props); 
    this.state = { key: value }; 
    } 
} 

另外,如果你有班级属性可用(巴伯阶段1),那么你可以做到以下几点:

export default class MyComponent extends React.Component{ 
    state = { key: value }; 

    render() { 
    .... 
    } 
} 
+0

谢谢。使用setState API有什么问题? – freedrull

+0

因为我记得读直接从不变异this.state: https://facebook.github.io/react/docs/component-api.html#setstate – freedrull

+6

对不起,要清楚,不要使用它时设置初始州。 :)其他地方是的。 – ctrlplusb

相关问题