2

私は反応ネイティブFlatListを持っていて、ユーザが製品を選択するまで、これは、エラーを与える:コードのrenderItem行程度最初に定義されていないデータを提供します。原因は未定義のxxxを読み取ることができません

cannot read property 'name' of undefined

<FlatList 
    data={ this.props.selectedProduct ? this.props.selectedProduct.products : [{ name: '' }] } 
    renderItem = {({ product }) => <Text style={{ color: 'white' }}>{product.name}</Text>} 
    horizontal = "true" 
    /> 

データが最初に定義されていない場合、私はそれ[{ name: '' }]を割り当てるしようとしているproduct.nameはエラーをスローしないように、しかし、それはにISNエラーをなくしてはいけません。エラーをどうやって消すのですか?私はちょうどthis.props.selectedProduct.productsをデータにして、エラーを起こさないようにします。 renderItem

+0

'renderItem'で' product'を慰めてみて、それが財産 'name'のを持っているかどうかを確認します。コンソールに表示された内容を投稿してください。 –

+0

以前はFlatListを使ったことがありませんでしたが、問題は未定義であると思われます。直感的には、{product.name}の代わりに{product?商品名 : ''}。私はまったく間違っているかもしれません。 –

+0

こんにちは@ user2602079あなたはこれに対する解決策を見つけられましたか?私は同じ問題を抱えている –

答えて

2

データがitem名前を付ける必要があります。

renderItem = {({ item }) => <Text style={{ color: 'white' }}>{item.name}</Text>}

+0

あなたはその理由を知っていますか? –

+1

@JulienMalige({item})は[オブジェクトの破棄](http://wesbos.com/destructuring-objects/)なのでと思う。オブジェクトの構造化解除では、変数を、パッケージングされていない変数と同じ名前で、包含するオブジェクトに名前を付ける必要があります。 – user2602079

関連する問題