У меня есть простая реализация реакции и потока. Я создаю новую запись с действиями и хранилищами, но проблема в том, что если пользователь перейдет на другой маршрут и вернет this.postAdded все еще такое же значение.Реагировать значение сброса сброса сброса при изменении маршрута
Магазин:
class NewPostsStore {
constructor() {
this.title = '';
this.body = '';
this.postAdded = false;
this.bindListeners({
createPost: PostsActions.createPost
});
}
createPost(res) {
this.postAdded = res.add;
}
}
Действие:
class PostsActions {
getPosts() {
$.ajax({
url: url
}).then((posts) => {
this.dispatch(posts);
});
}
createPost(post) {
$.ajax({
type:'POST',
data: post,
url: url
}).then((res) => {
this.dispatch(res);
});
}
}
module.exports = Blog.createActions(PostsActions);
Компонент:
export default React.createClass({
mixins: [addons.LinkedStateMixin],
getInitialState() {
return NewPostStore.getState();
},
onChange() {
this.setState(NewPostStore.getState());
},
componentDidMount() {
PostsActions.getPosts();
NewPostStore.listen(this.onChange);
},
componentWillUnmount() {
NewPostStore.unlisten(this.onChange);
},
submit(e) {
e.preventDefault();
PostsActions.createPost({
title: this.state.title,
body: this.state.body
});
},
setMessage() {
if(this.state.postAdded) {
return <h5>success</h5>
} else {
return <h5>failed</h5>
}
},
render() {
return (
<div>
<form onSubmit={this.submit}>
<input type="text" placeholder="Enter Title" valueLink={this.linkState('title')} />
<input type="text" placeholder="Enter Body" valueLink={this.linkState('body')}/>
<button>Create</button>
</form>
{this.setMessage()}
</div>
);
}
});
Как я могу сбросить состояние, когда перейти на другую точку зрения?