は、私はこれを行うことができますかどうかを確認しようとしている:オブジェクトからプロパティを抽出するためのes6の略語は何ですか?
const {todos} = props.todos;
this.todos = todos;
1行で。
は、私はこれを行うことができますかどうかを確認しようとしている:オブジェクトからプロパティを抽出するためのes6の略語は何ですか?
const {todos} = props.todos;
this.todos = todos;
1行で。
はい、あなたはこのようなものでできた(もしあなたが本当に非構造など):
let todos = (({ todos } = props.todos), this.todos = todos);
(我々は代入式の内部で、ドスを再バインドするので代わりにconst
のlet
を使用する必要があることに注意してください)
これを使用することをおすすめしますか?これは、コードに比べてはるかに判読不能になります。それはあまり知られていないcomma expressionも使用しています。このコードではなく、2つの行を使用しても問題ありません。 ES6の破壊の力はJavaScriptのLOCを減らすのではなく、理解しやすくすることです。例えば、デフォルト値を取る:
let { todos = [] } = props;
これは読みやすく、その後
let todos = props.todos;
todos = todos ? todos : [];
最後に、これは同じようにうまく機能することができます:
this.todos = props.todos.todos;
です。最初の例は、 'todos 'の前にdestructuringによって' todos'に割り当てているため、一時的なdeadzoneエラーです'初期化が完了しました。 – loganfsmyth
あなただけの単一のプロパティを抽出しているので、 、あなたは破壊を落として使用することができます
const todos = props.todos.todos;
this.todos = todos;
1行に?
({todos: this.todos} = props.todos);
または
({todos: {todos: this.todos}} = props);
しかし、あなたが本当ににも行う可能性があります:あなたは割り当てをしたいが、あなたが行うことができます中間
todos
値を、必要としないと仮定すると、
const todos = this.todos = props.todos.todos;
this.todos = props.todos.todos;
小道具についての考え方を教えてください –
これは不変です。このコードはコンストラクタ内にあります。 –
なぜthis.todos = props.todos;動作しませんか? –