2016-10-16 3 views
0

私は部品をと表示しています。このフォームを提出すると別のコンポーネントにbrowserHistory.push(url)AllCarWashをリダイレクトします。リダイレクトの前に追加して、私は還元店message : 'CarWash was save successfully'に入れました。このメッセージは、宛先コンポーネントAllCarWashに表示されます。React-reduxは一度表示された後に店舗内のデータを削除します

明らかに、このメッセージは一度しか表示されず、それ以上のユーザーアクションで表示されるべきではありません。だから、私が表示されたときに私はreduxストアからデータを削除する必要があります。これどうやってするの?ページ内のLinkにはそれぞれresetMessageHandlerを入れてください。それとも簡単な方法がありますか?ここ

答えて

0

あなたはcomponentWillReceivePropsまたはComponenetWillMountにReduxの中にメッセージが表示されたら、あなたは20-30secするための方法でタイムアウトを設定し、タイムアウト機能にすることができ、あなたが何ができるかである状態を更新

//sample code 
componentWillReceieveProps(props){ 
if(props.message){ 
    setTimeout(()=>{ 
    this.props.dispatch(removeMessageAction()) 
    },5000); 
} 
} 

することができます同じcomponentWillMount関数に書き込む代わりに、componentDidUpdateメソッドとcomponentDidMountメソッドを使用することもできます。

+0

これはうまくいくかもしれませんが、私は –

+0

がほしいと思っています。次に、メッセージを受け取ったときにフラグを設定します。 flagがまだ設定されている場合にレンダリングしてメッセージを削除するが、y 2つのレンダリングがいつか背中合わせに起こる可能性があるため、時間も使うべきです – abhirathore2006

関連する問題