2016-08-18 4 views
0

私たちはレンダリングメソッドでレンダリングメソッドを使用しています。react-ifの条件属性がfalseの場合でもPropTypeの警告

私たちは、以下の例では(propTypeのため)オブジェクトがMyComponentに送信されなかったという警告を出しました。これは、personがnullで、MyComponentがレンダリングされないことが予想されるためです。たとえcondition属性がfalseであっても、<If>MyComponentを作成/初期化するように見えます。

import {If, Then} from 'react-if' 
... 

render() { 
    const person = null 

    <If condition={!!person}> 
    <Then> 
     <MyComponent person={person} /> 
    </Then> 
    </If> 
} 
... 

const MyComponent = ({person}) => (
    <h1>{person.name}</h1> 
)  

MyComponent.propTypes = { 
    person: PropTypes.object.isRequired 
} 

{}に人を設定した場合、または三元を使用するよりも、この周りのどれよりよい方法はありますか?あなたの人の小道具がNULLとなる可能性があるので

おかげ

答えて

0

は、それが必要とするべきではありません。

MyComponent.propTypes = { 
    person: PropTypes.object 
} 

ありpull requestは今月、この曖昧な振る舞いを変えるためだった、これは新しいリリースに反映されます。

+0

の条件属性が偽であり、その内容が決して作成されない(または私が思った)ので、personの小道具は決してnullにできません。しかし、がその子に入り、その状態が偽であっても、小道具に沿って送ることが分かります。マージリクエストへのリンクは良いですが、新しいエラーメッセージはずっと良くなっています。 –

関連する問題