2017-01-26 15 views
1

小道を経由してstoreを受け取るコンポーネントがあります。だから、airbnbプリセットでtslint私は店のためPropTypesを宣言しなければならないので、私が追加私に語った:小道具として店を渡す警告

Root.propTypes = { 
    store: PropTypes.object.isRequired, 
}; 

しかしProp type object is forbidden。だから私はにコードを変更:

Root.propTypes = { 
    store: PropTypes.objectOf(PropTypes.object).isRequired, 
}; 

しかし、今のブラウザコンソールが私を言う:

index.js
Warning: Failed prop type: Invalid prop `store.dispatch` of type `function` supplied to `Root`, expected `object`. 

私が持っている:

const store = configureStore(); 

ReactDOM.render(
    <Root store={store} />, 
    document.getElementById('root'), 
); 

私はそれを解決することができますか? airbnbリンターがPropTypeとしてオブジェクトを許可していませんが、あなたはまた、このルールを無効にすることができ

// An object taking on a particular shape 
    optionalObjectWithShape: React.PropTypes.shape({ 
    color: React.PropTypes.string, 
    fontSize: React.PropTypes.number 
    }), 

リアクトドキュメントから形状構文を試みることができる理由

+0

'PropTypes.object.isRequired'が有効です。 'Propタイプオブジェクトは禁止されています 'というエラーメッセージはどこからトリガされましたか? – ganesshkumar

+0

「airbnb」リンター – FacundoGFlores

答えて

2

わからない

https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/forbid-prop-types.md#when-not-to-use

"このルールは書式設定/文書化の設定であり、コードの品質に悪影響を及ぼすことはありません。このルールは、使用方法をより具体的に記述するプロップタイプを推奨します。

airbnbのコード自体にこのルールの違反があり、無効になっているようです。

関連する問題