2017-06-13 5 views
-2

Ich habe folgenden Code verwendet, aber die oben genannten eslint Fehler erhalten.eslint: 'isResetProperty' fehlt in Props-Validierung (Reagieren/Prop-Typen)

componentWillReceiveProps(nextProps) { 
     if (nextProps.isResetProperty) { 
      this.setState({ empName: defaultEmpName }); 
      this.setState({ empAddress: defaultEmpAddress }); 
      this.props.resetPage(false); 
     } 
     } 
    "devDependencies": { 
    "eslint": "^3.18.0", 
    "eslint-config-airbnb": "^14.1.0", 
    "eslint-plugin-import": "^2.2.0", 
    "eslint-plugin-jsx-a11y": "^4.0.0", 
    "eslint-plugin-react": "^6.10.3", 
} 

Wie kann ich den Fehler beheben: [eslint] 'isResetProperty' in Requisiten Validierung fehlt (reagieren/prop-Typ) .Please mich unterstützen.

Antwort

1

Sie müssen den Typ für isResetProperty Eigenschaft deklarieren. About PropTypes. About this rule.

Voll Beispiel

// index.js 
import { Component } from 'react' 
import PropTypes from 'prop-types' 

export default class Cmp extends Component { 
    static propTypes = { 
    isResetProperty: PropTypes.bool.isRequired, 
    } 

    componentWillReceiveProps(nextProps) { 
    if (nextProps.isResetProperty) { 
     this.setState({ 
     reset: nextProps.isResetProperty, 
     }) 
    } 
    } 

    render() { 
    return null 
    } 
} 

package.json

"scripts": { 
    "lint": "eslint ." 
    }, 
    "devDependencies": { 
    "babel-eslint": "^7.2.3", 
    "eslint": "3", 
    "eslint-config-airbnb": "^15.0.1", 
    "eslint-plugin-import": "^2.3.0", 
    "eslint-plugin-jsx-a11y": "^5.0.3", 
    "eslint-plugin-react": "^7.0.1" 
    }, 
    "dependencies": { 
    "prop-types": "^15.5.10", 
    "react": "^15.5.4" 
    } 

.eslintrc

{ 
    "extends": "airbnb", 
    "parser": "babel-eslint", 
    "rules": { 
    "semi": [2, "never"] 
    } 
} 

>$ yarn run lint

Garnlauf v0.24.6 $ eslint. Fertig in 1.32s.

+0

Es wird nicht funktionieren, weil in obigen Code wir nextProps.isResetProperty verwenden, wird Ihr Code funktioniert, wenn es wie this.props.isResetProperty verwenden wird. – jack123

+0

@ jack123 Hast du es tatsächlich versucht? Ich weiß nicht, welche Eslint-Version Sie haben. Meins funktioniert wie ein Zauber. –

+0

Ich benutze "eslint": "^ 3.18.0", – jack123

-1
import React from 'react'; 
import PropTypes from 'prop-types'; 

class YourComponentName extends React.Component { 

    componentWillReceiveProps(nextProps) { 
    if (nextProps.isResetProperty) { 
     this.setState({ empName: defaultEmpName }); 
     this.setState({ empAddress: defaultEmpAddress }); 
     this.props.resetPage(false); 
    } 
    } 
}; 

YourComponentName.propTypes = { 
    isResetProperty: PropTypes.<type-of-isResetProperty> 
} 
+0

Es wird nicht funktionieren, weil im obigen Code wir nextProps.isResetProperty verwenden, wird Ihr Code funktionieren, wenn es wie this.props.isResetProperty verwendet wird. – jack123