我有一個fetchTweets函數,它用給定的參數a和b獲取推文。反應:只有在第一部分完全完成之後才執行函數的後半部分
<Button onClick={::this.toPageTwo}>
Send
</Button>
:當用戶點擊發送按鈕正在執行
功能toPageTwo調用fetchTweets功能,然後重定向用戶到所獲取的數據被示出
toPageTwo() {
this.fetchTweets(param1,param2);
this.props.router.push(`/page2`);
}
}
toPageTwo(另一頁)我怎麼才能確保page2只在推文被正確提取後才被加載?
UPDATE:
我使用終極版和Axios公司獲取的鳴叫和啓動位於側邊欄獲取等按鈕。我的文件樹是這個樣子:
src
redux
actions
tweets.js
common
sidebar.js
tweets.js:
import axios from "axios";
export function fetchTweets(a,b){
return function(dispatch) {
axios.get("http://127.0.0.1:5000/?a="+a+"&b="+b)
.then((response) => {
dispatch({type: "FETCH_TWEETS_FULFILLED", payload: response.data})
})
.catch((err) => {
dispatch({type: "FETCH_TWEETS_REJECTED", payload: err})
})
}
}
如果我添加「然後」以FETCH_TWEETS_FULFILLED派遣,我能夠讀取後,控制檯日誌。然而,這並不與this.props.router.push(/page2
)
sidebar.js工作:
-- IMPORTS --
@connect((state) => state)
@withRouter
class ApplicationSidebar extends React.Component {
-- BUNCH OF FUNCTIONS --
fetchTweets(a,b) {
this.props.dispatch(fetchTweets(a,b));
}
toPageTwo() {
fetchTweets(param_a,param_b);
this.props.router.push(`/page2`);
}
}
render() {
return (
-- SIDEBAR STUFF --
<Button onClick={::this.toPageTwo}>
Send
</Button>
);
}
出於某種原因,創建一個回調函數產生相同的結果定時功能:後者功能在第一部分(tweet提取)完成之前執行。
謝謝!
您究竟如何獲取推文? –
我在原始文章中添加了更多內容。謝謝! – jjjayn
建議:用標籤標記你的問題。 –