2016-11-08 57 views
0

我剛創建以下操作方法終極版操作方法不返回任何效應初探

export function searchProducts(searchQuery) { 
    console.log('REDUX - searchQuery: ', searchQuery); 
    return { 
    types: [SEARCH, SEARCH_SUCCESS, SEARCH_FAIL], 
    promise: (client) => { console.log('client is: ', client); client.get('/products/search/:' + searchQuery); } 
    }; 
} 

但是,當我調用此函數,它打印第一個控制檯命令,但不返回任何東西。即使它不打印console.log('client is: ', client);什麼可能是問題?

這裏是控制檯快照:

enter image description here

回答

0

Redux的操作對象的有一個要求,那就是它必須有類型的鍵值。你的對象應該看起來像這樣...

return { type: "SomeAction", payload: someValue }; 
+0

不真的。上面的代碼看起來像受到DanAbramov編寫的ClientMiddleware的影響,您可以在其中簡單地自定義行爲。 – Shiroo

+0

好的,謝謝,我發現很難跟上這些變化。 –

0

你的Redux中間件有clientMiddleware注入嗎?

我認爲你有類似的客戶端中間件注入,使其工作,並稍後在商店中應用?

您的代碼中也有錯誤。 ajax/fetch的承諾或者你使用的任何東西都有promise對象,它不返回client.get。所以它不會工作。 return關鍵字必須在那裏。

export function searchProducts(searchQuery) { 
     console.log('REDUX - searchQuery: ', searchQuery); 
     return { 
     types: [SEARCH, SEARCH_SUCCESS, SEARCH_FAIL], 
     promise: (client) => { 
      console.log('client is: ', client); 
      return client.get('/products/search/' + searchQuery); 
     } 
     }; 
    } 

export function searchProducts(searchQuery) { 
     console.log('REDUX - searchQuery: ', searchQuery); 
     return { 
     types: [SEARCH, SEARCH_SUCCESS, SEARCH_FAIL], 
     promise: (client) => client.get(`/products/search/${searchQuery}`); 
     }; 
    }