Необычный синтаксис json в документации React-Redux-Firebase.Это действительно? - PullRequest
0 голосов
/ 08 октября 2018

В документации к React-Redux-Firebase приведен следующий пример кода.

import { compose } from 'redux'
import { connect } from 'react-redux'
import { firebaseConnect, populate } from 'react-redux-firebase'

const populates = [
  { child: 'owner', root: 'users' } // replace owner with user object
]

const enhance = compose(
  firebaseConnect([
    // passing populates parameter also creates all necessary child queries
    { path: 'todos', populates }
  ]),
  connect(({ firebase }) => ({
    // populate original from data within separate paths redux
    todos: populate(firebase, 'todos', populates),
    // firebase.ordered.todos or firebase.data.todos for unpopulated todos
  }))
)

export default enhance(SomeComponent)

Меня особенно беспокоит строка, которая гласит:

{ path: 'todos', populates }

Я никогда не видел этот синтаксис раньше.Это ошибка?Или это правильный синтаксис?Если это действительно так, объясните, что это значит и как это работает.

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Да, это правильный синтаксис в es6

{ path: 'todos', populates }

это в основном означает,

{ 
   path: 'todos',
   populates:  [
     { child: 'owner', root: 'users' }
   ]
}

Обратите внимание, что populates является переменнойиспользуется и записывает имя переменной в объекте, рассматривает имя как ключ и значение как что-либо, хранящееся в переменной.

0 голосов
/ 08 октября 2018

Это новый синтаксис ES6.В основном, если populates равно 'abc' (просто в качестве примера), то

{ path: 'todos', populates }

означает

{ path: 'todos', populates: 'abc' }

Однако populates может быть любым допустимым значением, которое можно использоватьв этом отношении внутри объекта.

Итак, в вашем конкретном случае это будет означать:

{
 path: 'todos',
 populates: [{
  child: 'owner',
  root: 'users'
 }]
}

Ref: https://ariya.io/2013/02/es6-and-object-literal-property-value-shorthand

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...