以下のリンク先のコードなのですが、書き出しからこんな感じで何やってるか良くわかりづらかったので、従来のJavaScriptのコードに書き直してみたつもりなのですが、書き直したコードは元のコードの本来の動作通りに書き直せていますでしょうか? >_<
一時的に削除します。。。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
ざっと見た感じそれで大丈夫。
isIterable === true ? wrappedComponentProp[VALUE].toJS() : wrappedComponentProp[VALUE];
三項演算子でこれはイケてない。
isXXX
はtrue or false
の論理値に決まってるんだから、そのまま三項演算子に投げ込んだ方がかっこいい。
isIterable ? wrappedComponentProp[VALUE].toJS() : wrappedComponentProp[VALUE]
以下は蛇足だけど、自分で書くならこうかな。
この辺は思想もあるから色んな人の正解があると思うけど、私の場合は横を縮める為に少々縦に伸ばすのが好み。
ついでにspace2個が好き。
JavaScript
1import React from 'react' 2import { Iterable } from 'immutable' 3 4export const toJS = WrappedComponent => wrappedComponentProps => { 5 const propsJS = Object 6 .entries(wrappedComponentProps) 7 .reduce((newProps, it) => { 8 let key = it[0]; 9 let prop = it[1]; 10 let isIterable = Iterable.isIterable(prop); 11 newProps[key] = isIterable ? prop.toJS() : prop; 12 return newProps; 13 }, {}); 14 15 return <WrappedComponent {...propsJS} /> 16}
因みにObject.entries
が何してるのか気になったので検証してみた。
obj-to-pairsしてたんだね、これは便利。
JavaScript
1var hoge = {a: 123, b: 234} 2console.log(Object.entries(hoge)); 3// [["a", 123], ["b", 234]]
投稿2017/08/24 14:52
総合スコア21158
0
学習上でのES2015からES5へのコード変換ということで、Babel公式サイトのTry it outページでWeb上で左にES2015コードを入力すると右にES5コードが出力される機能があったので、人間が見る分には少し歪にはなりますが動くコードなので合っているかどうかの参考にはなるかと思います。
Babel Try it out
投稿2017/08/24 13:59
総合スコア4106
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/08/25 00:52
退会済みユーザー
2017/08/25 00:52