因此,我试图从一个单独的JavaScript文件中更新商店和我的组件,但是我有点挣扎了。
我要调用的函数在组件中起作用,但在我想要的文件中不起作用。这很有道理,我想我已经接近了,我想获得一些帮助,让一切顺利完成!
代码如下:How can I combine my customize module with Omnet++INET's simple module
如果打开page.js
,将看到Page组件,该组件具有两个具有onClick功能的按钮。单击后,h1的值将发生变化-这将按预期工作。
现在,如果您打开newfile.jsx
(包含在index.js
中),我将设置为2.5秒的超时,该超时将调用actions.js
中的成功函数。该函数成功记录日志“ SUCCESS”。但是据我所知,商店不会更新,页面上的h1文本也不会更新。
就像我说的,我认为,至少我希望,我很亲近。但是我真的对我需要从这里去那里感到困惑。任何帮助将非常感激。谢谢!
代码: 以下是似乎无法正常工作的
import { successAction, errorAction } from "./actions";
setTimeout(function() {
console.log("Timeout Complete");
successAction();
}, 2500);
我的实际组件中确实包含以下内容,我认为这可能是我所缺少的。我只是不知道如何使用newfile.jsx
中的格式来格式化它。据我所知,它是组件导出方式的内置工具。
const mapStateToProps = state => ({
status: state.status
});
const mapDispatchToProps = dispatch => ({
successAction: () => dispatch(successAction()),
errorAction: () => dispatch(errorAction())
});
export default connect(
mapStateToProps,
mapDispatchToProps
)(Page);
我尝试将以下内容添加到newfile.jsx
中,但这似乎不起作用。
const mapStateToProps = state => ({
status: state.status
});
const mapDispatchToProps = dispatch => ({
successAction: () => dispatch(successAction()),
errorAction: () => dispatch(errorAction())
});
connect(
mapStateToProps,
mapDispatchToProps
);
答案 0 :(得分:1)
将商店导入您的newFile.jsx
,然后从那里分发。
import { successAction, errorAction } from "./actions";
import store from "./store";
setTimeout(function() {
console.log("Timeout Complete");
store.dispatch( successAction() );
}, 2500);