2017-05-21 7 views
4

ステートレス関数を書きましたが、この関数では構造化オブジェクトの宣言を使用していますが、私の変数の1つに条件があります。私は三項状態で書きました。私はそれをDestructuring assignment structureで宣言することはできません。ES6構造化オブジェクトの三項条件

これは私の宣言です:

const pageNo = props.filters.pageno 
        ? props.filters.pageno -1 
        : 0; 

    const { 
     data: { 
      result: { 
       total : total 
      } = {} 
     }, 
     tags: { 
      result: { 
       categoryFilter: { 
        Title : title 
       } = {} 
      } = {} 
     } 
    } = props; 
+1

。 –

+1

破壊はオブジェクトを宣言しませんか? – Bergi

+1

destructuring assignmentはどんな型でも宣言できます。私の質問は条件に関するものです。私は知りたいですが、 'pageNo'を三項条件で宣言できますか? – AmerllicA

答えて

3

あなたが直接することはできません。あなたが行うことができます条件を使用することはできません割り当てを構造化代入で

const {filters: {pageno}} = props; 
const realPageno = pageno ? pageno - 1 : 0; 
+1

この方法はとてもうまく動作しますが、 'destructuring assignment 'が大きくなると間違いなく理解するのがより複雑になるので、' Nested'の書き方はより美しくて読みやすくなります。 – AmerllicA

3
const { 
    data: { 
     result: { 
      total : total = 0 
     } = {} 
    }={}, 
    filters: { 
     pageno: TempPageNo = 0 
    }={}, 
    tags: { 
     result: { 
      categoryFilter: { 
       Title : title = "something" 
      } = {} 
     } = {} 
    }={} 
} = props; 

const pageno = TempPageNo ? TempPageNo - 1 : TempPageNo 
+4

ネストされたプリティコーディング – AmerllicA

+1

私はこれらのスタイルのように以前は見たことがありません。 –

+2

素晴らしいですし、適切な作業 – MARK

関連する問題