2017-01-01 15 views
0

как я понимаю, всегда есть статическое initialState в редукторе, теперь я хочу, чтобы async получил начальное состояние с удаленного сервера, я знаю, как их получить, и я мог бы это сделать в componentWillMount в соответствующем презентационном компоненте, но разве он не используется только для презентации? где я должен поставить ниже код извлечения и получить начальное состояние до того, как он соединится с хранилищем?реагировать на native get async начальное состояние в редукторе

getInitailState =() => { 
    return (
     fetch(apis.GETINITAILURL) 
     .then((response)=>response.json()) 
     .then((responseJson) => { 
      return responseJson; 
     }) 
     .catch(e=>e) 
    ) 
} 

здесь оригинальный полный код редуктора:

import * as TYPES from '../actions/types.js'; 
import ApiUtils from '../utils/ApiUtils.js'; 

const initailTaskState = [{ 
    "taskid": 1, 
    "priority": 3, 
    "desc": "Bug fix", 
    "timestamp": 5 
}] 

const tasks = (state = initailTaskState , action) => { 
    switch(action.type){ 
    case TYPES.ADD_TASK: 
     return [ 
      ...state, 
      action.task 
     ] 
    case TYPES.DELETE_TASK: 
     return state.filter(task => task.taskid !== action.taskid); 

    default: 
     return state 

    } 
} 
export default tasks; 

ответ

0

выборки код должен идти внутри создателя действий. Это действие должно быть отправлено в componentWillMount. Сделайте выбор внутри действия и отправьте другое действие, которое обновляет хранилище внутри обратного вызова успешности извлечения.

Также пройдите this нить. Существует хорошая дискуссия по размещению вызовов API в правильных местах.

+0

спасибо, предположим, мне нужно использовать промежуточное программное обеспечение thunk? – inoutwhy

+0

Извините, я никогда не использовал thunk. Но я нашел отличную дискуссию по этому поводу [здесь] (http://stackoverflow.com/questions/34570758/why-do-we-need-middleware-for-async-flow-in-redux). Даже я перевариваю это прямо сейчас: p – Swapnil

 Смежные вопросы

  • Нет связанных вопросов^_^