2017-03-03 6 views
2

Ich lese JavaScript geschrieben mit Reaktion, Redux und Thunk in einem Beispiel unter:Was wird zurückgegeben?

In actions.js Aktion zu erstellen:

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)) 
    } 
    } 

Was bedeutet "fetchPosts (subreddit)" zurückzukehren?.

Ich kann nicht verstehen, was "return dispatch =>" ist.

Diese Funktion importiert und in einem Behälter verwendet Aktion auszuführen, so dass ich denke, „Versand“ ist eine Funktion importiert von ‚reagieren-redux'in die Behälter wie folgt:

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

Does„Dispatch "vor dem Pfeil bedeutet eine Funktion," dispatch (requestPosts (subreddit)) "?

Wird ein Argument versendet, bei dem "(Versand)" mit ES2015 abgekürzt wird?

Antwort

2

Von https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions:

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

So dispatch => {...}, macht einen Pfeil Funktion mit einem Parameter, dispatch. fetchPosts(subreddit) gibt eine einzelne Pfeilfunktion zurück.

Der Unsinn über { disppatch, selectedSubreddit } = this.props ist etwas namens Destrukturierung Zuordnung. Das Handbuch: MDN Destructuring Assignment

Das Wesentliche ist:

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

Also ja, dispatch von this.props gezogen wird, das ist appearantly eine reactjs Komponente Sache! ReactJS Components and Props

+0

Vielen Dank! Ich verstehe, dass "Versand" eine Funktion ist, und gibt eine Pfeilfunktion zurück. Wenn alle "Versenden" in dieser Funktion in einen anderen Namen geändert werden, funktionierte diese Funktion immer noch wie Sie sagten. Vielen Dank! – user2255716

Verwandte Themen