2016-10-20 5 views
0

У меня есть общие функции для обработки ввода OnChange: (. Для бывшего из них для набора, сколько строк в таблицу Я хочу получать 30 или 60)Реагировать Redux асинхронного действия обработки

export function onChange(e) { 
    return (dispatch) => { 
     const payload = {}; 
     payload[e.target.id] = e.target.value; 
     dispatch({ 
      type: e.target.name, 
      payload 
     }) 
    } 
} 

после некоторых входов изменений мне нужно для функции извлечения fetch.

Но когда я вызываю функцию fetch() сразу после onChange - выборка начинается до того, как onChange изменяет реквизиты, которые являются частью запроса url-запроса, является инстанцией.

Как работать такие асинхронные действия для Strt выборки после OnChange изменяет состояние Redux

EDIT
второй функция Я хочу назвать это

export function searchContacts(e, props) { 

return (dispatch) => { 
    let propsReceived = props.allContacts; 

    let searchString = "?page="  + propsReceived.paginate + 
         "&orderBy=" + propsReceived.order + 
         "&sortedBy=" + propsReceived.sort  + 
         "&limit=" + propsReceived.limit; 
    if(e){ 
     let search = e.target.value; 
     searchString += "&search=first_name:" + search +";first_name:"+ search; 
    } 
    let url = ALL_CONTACTS + searchString; 
    return dispatch(getContacts(url)); 
} 

И я звоню эти две функции такие:

<select className="input-select select-contacts-nav" 
     onChange={(e)=>{ 
       this.props.onChange(e); 
       this.props.searchContacts(null, this.props); 
     }} 
     value={this.props.allContacts.limit} 
     id="limit" 
     name="ALL_CONTACTS" 
> 
    <option value="30"> 30</option> 
    <option value="60"> 60</option> 
    <option value="100">100</option> 
</select> 

Но this.props.searchContacts начинается до this.props.onChange

+0

Можете ли вы показать, где именно вы хотите называть 'fetch'? – nem035

ответ