ব্যবহার: অ্যাপোলো ক্লায়েন্ট 2.0, প্রতিক্রিয়া-রাউটার ভি 4, প্রতিক্রিয়া 16 (ফাইবার)
উত্তরটি নির্বাচিত পুরানো প্রতিক্রিয়া রাউটার v3 ব্যবহার করুন। অ্যাপটির জন্য গ্লোবাল সেটিংস লোড করতে আমার 'প্রেরণ' করা দরকার do কৌতুকটি উপাদানটি উইলআপডেট ব্যবহার করছে, যদিও উদাহরণটি অ্যাপোলো ক্লায়েন্ট ব্যবহার করছে এবং সমাধানগুলি সমান নয়। আপনার বাউকের দরকার নেই
SettingsLoad.js
import React, { Component } from 'react';
import { connect } from 'react-redux';
import {bindActionCreators} from "redux";
import {
graphql,
compose,
} from 'react-apollo';
import {appSettingsLoad} from './actions/appActions';
import defQls from './defQls';
import {resolvePathObj} from "./utils/helper";
class SettingsLoad extends Component {
constructor(props) {
super(props);
}
componentWillMount() {
}
componentWillUpdate(newProps) {
const newrecord = resolvePathObj(newProps, 'getOrgSettings.getOrgSettings.record');
const oldrecord = resolvePathObj(this.props, 'getOrgSettings.getOrgSettings.record');
if (newrecord === oldrecord) {
return false;
}
if (typeof newrecord ==='undefined') {
return false;
}
setTimeout(() => {
this.props.appSettingsLoad( JSON.parse(this.props.getOrgSettings.getOrgSettings.record));
}, 1000);
}
componentDidMount() {
}
render() {
const record = resolvePathObj(this.props, 'getOrgSettings.getOrgSettings.record');
return record
? this.props.children
: (<p>...</p>);
}
}
const withGraphql = compose(
graphql(defQls.loadTable, {
name: 'loadTable',
options: props => {
const optionsValues = { };
optionsValues.fetchPolicy = 'network-only';
return optionsValues ;
},
}),
)(SettingsLoad);
const mapStateToProps = (state, ownProps) => {
return {
myState: state,
};
};
const mapDispatchToProps = (dispatch) => {
return bindActionCreators ({appSettingsLoad, dispatch }, dispatch );
};
const ComponentFull = connect(
mapStateToProps ,
mapDispatchToProps,
)(withGraphql);
export default ComponentFull;
App.js
class App extends Component<Props> {
render() {
return (
<ApolloProvider client={client}>
<Provider store={store} >
<SettingsLoad>
<BrowserRouter>
<Switch>
<LayoutContainer
t={t}
i18n={i18n}
path="/myaccount"
component={MyAccount}
title="form.myAccount"
/>
<LayoutContainer
t={t}
i18n={i18n}
path="/dashboard"
component={Dashboard}
title="menu.dashboard"
/>
componentWillMount()
জন্য জিনিস। আমিmapDispatchToProps()
App.js এর সমস্ত প্রেরণ সম্পর্কিত ক্রিয়াকলাপকে কল করে একটি সাধারণ ফাংশন সংজ্ঞায়িত করেছি এবং এটিকে কল করেছিcomponentWillMount()
।