我通过在另一个.js文件中编写一个函数来分离我的代码。
问题是我无法访问我的redux连接函数,因为我没有在新的.js文件中使用类。
要清理:
这是我班级里面的函数( barChange ),我想在另一个js文件中移动
@connect((store) => {
return {
bar_change:store.bar_change
};
})
export default class Bardoctor extends React.Component {
constructor(props) {
super(props);
}
barChange(arg0){
//function code...
this.props.dispatch(user.changeBarNum(arg0,"bar_change_doctor"));
this.props.dispatch(user.sendBarDataDoctor("doctor_bar_send",temp_arr, flag_it, arg0));
}
为了使用我的用户。功能我必须拥有 this.props.dispatch 。 如果我将 barChange 函数打包到另一个.js文件中并导出函数并在我的类中调用它,我将如何使用this.props.dispatch?
例如:
import * as user from "../actions/asyncCAll.js"
export function barChange(arg0, prop_arr, prop_next, string_change, string_send){
//function code...
dispatch(user.changeBarNum(arg0,string_change));
dispatch(user.sendBarDataPatient(string_send, temp_arr, flag_it, arg0));
}
答案 0 :(得分:2)
您可以将store
导入新的js文件并直接使用商店的dispatch method。
import store from 'path/to/your/store/file'
function barChange(arg0) {
//function code...
store.dispatch(user.changeBarNum(arg0, "bar_change_doctor"));
store.dispatch(
user.sendBarDataDoctor("doctor_bar_send", temp_arr, flag_it, arg0)
);
}
如果您未使用createStore
方法在单独的文件中创建商店,我建议您按照以下方式执行此操作。
const store = createStore(reducers, //...);
export default store;
警告:如果将此方法用于服务器端呈现,则此方法可能会出现问题。