何かがここにはありません。多くの例でこの作品を見てきましたが、return
を使わずにAnimated.View
をレンダリングしません。どんなことが起こっているのでしょうか?react-native:コンポーネントが.mapでレンダリングされない
答えて
マップ内の匿名関数内のコンポーネントを返します。
のTh e map()メソッドは、この配列のすべての要素に提供された関数を呼び出した結果で新しい配列を作成します。
提供された関数がデータを返さない場合は、配列に未定義のオブジェクトが含まれます。
[1, 2, 3].map(function(){}) // [undefined, undefined, undefined]
Bikasバイバブは彼のコメントにしてMozilla Docsを言い換え言ったように:マップは順番に、配列の各要素に対して一度に提供するコールバック関数を呼び出し、その結果から新しい配列を作成します。あなたは何も返さない場合は
したがって、あなただけの代わりに返された値の未定義で配列をあなたのballArrayと同じ長さを持つことになります。ブラウザのコンソールで次の2つの例を試してみてください。リターンなし
> b = [1,4,9];
> d = b.map(function(a){
var rt = a*2;
return rt
});
<- [2, 8, 18]
:リターンで
// Without a return:
> d = b.map(function(a){
var rt = a*2;
});
<- [undefined, undefined, undefined]
は、この情報がお役に立てば幸い!
私はいくつかの回答が既にあることを知っていますが、なぜのOP特有の問題に対処できないと思います。
tl; dr:ブロックボディのES6矢印機能は暗黙の復帰をしません。
アロー機能「は簡潔な体」または通常「ブロック体」のいずれかを持つことができます。
簡潔な本体では、式だけが必要であり、暗黙的な戻り値が付けられます。ブロック本体では、明示的なreturn文を使用する必要があります。
これはfilter
プロトタイプ使用して、「簡潔な体」の一例である。この式で
let myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let filteredArray = myArray.filter(item => item > 5);
console.log(filteredArray);
// => [6, 7, 8, 9, 10]
を、ブラケット{
}
の欠如は、それが暗黙のうちに式の結果を返すことを意味します。
「ブロック体」と同等は次のようになります。あなたのポストで
let myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let filteredArray = myArray.filter(item => {
return item > 5;
});
console.log(filteredArray);
// => [6, 7, 8, 9, 10]
を、あなたはそれを返さずにブロック本体の内部コンポーネントを指定すると、マップのプロトタイプを使用すると、内部のアイテムを返すことが必要ですので、新しいマップで使用されるコールバック、マップは空です。
ES6の矢印の機能を使用すると、このように暗黙のリターンを行うことができます。
this.state.ballArray.map((d, i) => (
<Animated.View />
))
- 1. VueコンポーネントがLaravelでレンダリングされない
- 2. Reactコンポーネントでコンテンツがレンダリングされない
- 3. シンプルなVueコンポーネントがレンダリングされない
- 4. 子コンポーネントがレンダリングされていない
- 5. レンダリングされないコンポーネント
- 6. 角度コンポーネントがレンダリングされない
- 7. My Reactコンポーネントがレンダリングされない
- 8. リアクター・ルータ|コンポーネントがレンダリングされない
- 9. React/Reduxコンポーネントが再レンダリングされない
- 10. コンポーネントが正しくレンダリングされない
- 11. ポリマー2:コンポーネントがレンダリングされない
- 12. 子コンポーネントが親コンポーネントで正しくレンダリングされない
- 13. コンポーネントでレンダリングされないビューjs
- 14. リアクタ:コンポーネントがリフレッシュされない限りレンダリングされない
- 15. なぜコンポーネントがReactNativeのScrollViewにラップされていないと縮小されるのですか?
- 16. コンポーネントがレンダリングされないのはなぜですか?
- 17. なぜ反応コンポーネントがレンダリングされないのですか?
- 18. ReactVarは再レンダリングされないReactコンポーネント
- 19. DOMにレンダリングされない反応コンポーネント
- 20. 空白のJSFレンダリングされないコンポーネント
- 21. Enzyme shallowレンダリングで子コンポーネントがレンダリングされています
- 22. エラーがないので、コンポーネントがレンダリングされないのはなぜですか?
- 23. PrimeFacesでコンポーネントが完全にレンダリングされない
- 24. コンポーネントがVueJsで正しくレンダリングされない
- 25. VueJS 2コンポーネントのリストがVue.set()で再レンダリングされない
- 26. 親状態の変更で子コンポーネントが再レンダリングされない
- 27. ブートストラップカードのコンポーネントがリアクションでレンダリングされない
- 28. 私のコンポーネントが反応で再レンダリングされない理由
- 29. React Router v4でコンポーネントがレンダリングされない
- 30. ブートストラップでNavコンポーネントが正しくレンダリングされない
マップは単なる関数です。それがあなたに何も返さなければ、あなたは操作する価値がありません。それはマップ – Bikas
の一般的な振る舞いですあなたの矢印機能の中括弧を見てください。 'foo => bar'または' foo =>(bar) ':暗黙的な戻り値、' foo => {bar} 'は明示的な戻り値が必要です。 – pawel
@Bikasありがとうございました。私はmap()内のビューの欠如に直面していた時間を教えてくれません。あなたの短い声明は私を顔の手のひらの瞬間にさせましたが、それはすべて今働きます。 –