首先, context/index.js 里面:
import React from 'react';
const Context = React.createContext({ default: '默认值' });
export default Context;
然后组件 components/ProblemClient.js 里面
import Context from '../context/index';
// some code!
render(){
return(
<Context.Provider value={store}>
<div/>
</Context.Provider>
)}
如果是 react-redux ,就直接用
在组件 components/ProblemClient.js 里面
import { Provider } from 'react-redux';
// some code!
render() {
return (
<Provider store={store}>
<div/>
</Provider>
)}
store是一样的
import { createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import reducer from '../reducers/index';
const store = createStore(
reducer,
applyMiddleware(
thunk,
),
);
reducers/index 里面
import { combineReducers } from 'redux';
const issues = (state = [], action) => {
const { type, data } = action;
if ( type === REFRESH_ISSUES) {
return data.issues || [];
}
return state;
};
const causes = (state = [], action) => {
const { type, data } = action;
if ( type === REFRESH_CAUSES) {
return data || [];
}
return state;
};
const results = (state = [], action) => {
const { type, data } = action;
if ( type === REFRESH_RESULTS) {
return data.results || [];
}
return state;
};
export default combineReducers({
issues,
causes,
results,
});
上面 REFRESH_ISSUES ,REFRESH_CAUSES , REFRESH_RESULTS的定义来自 …/actions/index