React, ES6 - getInitialState was defined on a plain JavaScript class

前端 未结 3 1238
野趣味
野趣味 2020-12-22 21:51

I have the following component (radioOther.jsx):

 \'use strict\';

 //module.exports = <-- omitted in update

   class RadioOther extends Rea         


        
3条回答
  •  难免孤独
    2020-12-22 22:02

    • getInitialState is not used in ES6 classes. Instead assign this.state in the constructor.
    • propTypes should be a static class variable or assigned to the class, it should not be assigned to component instances.
    • Member methods are not "auto-bound" in ES6 classes. For methods used as callbacks, either use class property initializers or assign bound instances in the constructor.
    export default class RadioOther extends React.Component {
    
      static propTypes = {
        name: React.PropTypes.string.isRequired,
      };
    
      constructor(props) {
        super(props);
        this.state = {
          otherChecked: false,
        };
      }
    
      // Class property initializer. `this` will be the instance when
      // the function is called.
      onRadChange = () => {
        ...
      };
    
      ...
    
    }
    

    See more in the React's documentation about ES6 Classes: Converting a Function to a Class

提交回复
热议问题