2017-03-03 8 views
2

私は、以下の例で反応、Reduxの、そしてサンクで書かれたJavaScriptを読んでいる:何が返されますか?

function fetchPosts(subreddit){ 
    return dispatch => { 
      dispatch(requestPosts(subreddit)) 
      return fetch(`...URL...`) 
        .then(response => response.json()) 
        .then(json => dispatch(receivePosts(subreddit, json))) 
    } 
} 

export function fetchPostsIfNeeded(subreddit) { 
    return (dispatch, getState) => { 
    if (shouldFetchPosts(getState(), subreddit)) { 
     return dispatch(fetchPosts(subreddit)) 
    } 
    } 

"fetchPosts(subreddit)" とは何を返すん:actions.jsで

は、アクションを作成するには?

「返品発送=>」はとは分かりません。

この関数は、インポートおよびアクションをディスパッチするためにコンテナで使用するので、私は「派遣」は以下のようにコンテナを反応させ、redux'in」からインポート機能だと思い さ:

import {fetchPostsIfNeeded} from "../actions" 
import {connect} from "react-redux" 
... 
componentDidMount() { 
    const { dispatch, selectedSubreddit } = this.props 
    dispatch(fetchPostsIfNeeded(selectedSubreddit)) 
    } 
... 

は「派遣をい"before arrowは関数を意味し、" dispatch(requestPosts(subreddit)) "?

「ディスパッチ」をES2015と略記するディスパッチは引数ですか? https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functionsから

答えて

2

// Parentheses are optional when there's only one parameter: 
(singleParam) => { statements } 
singleParam => { statements } 

ので、dispatch => {...}、一つのパラメータ、dispatchと矢印機能を作っています。 fetchPosts(subreddit)は単一の矢印機能を返します。

ナンセンス約{ disppatch, selectedSubreddit } = this.propsは、Destructuring Assignmentと呼ばれるものです。マニュアル:MDN Destructuring Assignment

ことの本質は次のとおりです。

var o = {p: 42, q: true}; 
var {p, q} = o; 
console.log(p); // 42 
console.log(q); // true 

はそうです、dispatchはappearantly reactjs部品の事である、this.propsから引き出されています! ReactJS Components and Props

+0

ありがとうございました!私はこの「ディスパッチ」が関数であることを理解し、矢印関数を返します。 この機能のすべての「ディスパッチ」が他の名前に変更されても、この機能はあなたの言ったように機能しました。 ありがとうございます! – user2255716

関連する問題