我的操作中有一个与服务器交互的方法,并且由于它的设置方式:
function generateDoc(specs) {
// Gen start !
InterfaceCard.setState({ showhide: true });
// loop :
const promises = [];
specs.forEach((spec) => {
if (spec) promises.push(generateChain(spec));
});
// gen end!
InterfaceCard.setState({ showhide: false });
}
可以给我一个开始和结束我的文档生成。
我希望// Gen start !
和// gen end!
发出一个组件可以接收的调用或var修改。
(显然我当前的InterfaceCard.setState({ showhide: false });
不起作用。)
" InterfaceCard"即使是使用此操作文件分组的组件也是如此。这实际上是它的孩子的行为(但那没关系。如果我至少终于到达与当前行动相关的组件,我必须使用道具来重新启动,那么我会,这不是一个真正的问题。)
让我感到困惑的是,我不知道如何在不使用服务器调用(和响应)的情况下从操作向组件进行通信。
请原谅我没有找到关于此的文件。
谢谢!
更新:
我在:
function generateDoc(specs) {
show();
const promises = [];
specs.forEach((spec) => {
if (spec) promises.push(generateChain(spec));
});
hide();
}
function show() {
const pay = true;
return dispatch => dispatch({ ...types.ALERT, pay });
}
function hide() {
const pay = true;
return dispatch => dispatch({ ...types.ALERTN, pay });
}
这些不发送。但如果我这样做:
function generateDoc(specs) {
const promises = [];
specs.forEach((spec) => {
if (spec) promises.push(generateChain(spec));
});
const pay = true;
return dispatch => dispatch({ ...types.ALERTN, pay });
}
结束调度会调度,但它跳过中间的代码并完全省略它。
所以第一个前者对我来说看起来更好(如果我理解正确的话)它允许我按顺序返回三个。
问题是他们拒绝发送我不知道为什么设置。
更新:
这有效:
function generateDoc(specs) {
const promises = [];
specs.forEach((spec) => {
if (spec) promises.push(generateChain(spec));
});
return (dispatch) => {
setTimeout(() => {
dispatch(show());
}, 1);
setTimeout(() => {
dispatch(hide());
}, 9000);
};
}
function show() {
const pay = true;
return { ...types.ALERT, pay };
}
function hide() {
const pay = true;
return { ...types.ALERTN, pay };
}
答案 0 :(得分:1)
您可以调度动作并在相关的减速器中更改一些道具。 然后在组件中,您可以使用shouldComponentUpdate或componentWillReceiveProps来监听这些道具的更改。
function show() {
return { ...types.ALERT, pay }
}
function hide() {
return { ...types.ALERTN, pay }
}
function generateDoc(specs) {
return dispatch => {
dispatch(show());
dispatch(hide());
}
}