*changeLocale({
payload
},{ put, call, select }) {
let signupFlagTemp1 = yield select(state => state.global.appLocale);
console.log(signupFlagTemp1);
console.log("changeLocale click");
console.log("payload: ",payload);
yield put ({
type: 'saveAppLocale',
payload: payload
});
let signupFlagTemp2 = yield select(state => state.global.appLocale);
console.log(signupFlagTemp2);
}
function App({dispatch, appLocale, children}) {
return (
<LocaleProvider locale={appLocale}>
{children}
</LocaleProvider>
);
}
function mapStateToProps(state) {
const {appLocale} = state.global;
return {
loading: state.loading.models.global,
appLocale
};
}
var CApp = require('react-redux').connect(mapStateToProps)(App);
function getProvider(store, app, router) {
return extraProps => (
<Provider store={store}>
<CApp>
{ router({app, history: app._history, ...extraProps}) }
</CApp>
</Provider>
);
}
cd /node_moudules/dva/ 然后 1 step: npm i; 2 step: npm i -g ruban; 3 step: node_moudules/dva/lib 中出现转码后的文件,但是转码后的文件 和lib里的自带原始文件不同,而且不能正常 运行项目
原始自带文件/node_moudules/dva/ lib/index.js
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _typeof2 = require('babel-runtime/helpers/typeof');
var _typeof3 = _interopRequireDefault(_typeof2);
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
exports.default = function () {
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var history = opts.history || (0, _createHashHistory2.default)();
var createOpts = {
initialReducer: {
routing: _reactRouterRedux.routerReducer
},
setupMiddlewares: function setupMiddlewares(middlewares) {
return [(0, _reactRouterRedux.routerMiddleware)(history)].concat((0, _toConsumableArray3.default)(middlewares));
},
setupApp: function setupApp(app) {
app._history = patchHistory(history);
}
};
var app = core.create(opts, createOpts);
var oldAppStart = app.start;
app.router = router;
app.start = start;
return app;
function router(router) {
(0, _invariant2.default)((0, _utils.isFunction)(router), '[app.router] router should be function, but got ' + (typeof router === 'undefined' ? 'undefined' : (0, _typeof3.default)(router)));
app._router = router;
}
function start(container) {
// 允许 container 是字符串,然后用 querySelector 找元素
if (isString(container)) {
container = _document2.default.querySelector(container);
(0, _invariant2.default)(container, '[app.start] container ' + container + ' not found');
}
// 并且是 HTMLElement
(0, _invariant2.default)(!container || isHTMLElement(container), '[app.start] container should be HTMLElement');
// 路由必须提前注册
(0, _invariant2.default)(app._router, '[app.start] router must be registered before app.start()');
oldAppStart.call(app);
var store = app._store;
// export _getProvider for HMR
// ref: https://github.com/dvajs/dva/issues/469
app._getProvider = getProvider.bind(null, store, app);
// If has container, render; else, return react component
if (container) {
render(container, store, app, app._router);
app._plugin.apply('onHmr')(render.bind(null, container, store, app));
} else {
return getProvider(store, this, this._router);
}
}
};
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _invariant = require('invariant');
var _invariant2 = _interopRequireDefault(_invariant);
var _createHashHistory = require('history/createHashHistory');
var _createHashHistory2 = _interopRequireDefault(_createHashHistory);
var _reactRouterRedux = require('react-router-redux');
var _document = require('global/document');
var _document2 = _interopRequireDefault(_document);
var _reactRedux = require('react-redux');
var _dvaCore = require('dva-core');
var core = _interopRequireWildcard(_dvaCore);
var _utils = require('dva-core/lib/utils');
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function isHTMLElement(node) {
return (typeof node === 'undefined' ? 'undefined' : (0, _typeof3.default)(node)) === 'object' && node !== null && node.nodeType && node.nodeName;
}
function isString(str) {
return typeof str === 'string';
}
function getProvider(store, app, router) {
return function (extraProps) {
return _react2.default.createElement(
_reactRedux.Provider,
{ store: store },
router((0, _extends3.default)({ app: app, history:
* 编译后的文件
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _default;
var _jsx2 = _interopRequireDefault(require("@babel/runtime/helpers/jsx"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _react = _interopRequireDefault(require("react"));
var _invariant = _interopRequireDefault(require("invariant"));
var _createHashHistory = _interopRequireDefault(require("history/createHashHistory"));
var _reactRouterRedux = require("react-router-redux");
var _document = _interopRequireDefault(require("global/document"));
var _reactRedux = require("react-redux");
var core = _interopRequireWildcard(require("dva-core"));
var _utils = require("dva-core/lib/utils");
function _default() {
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var history = opts.history || (0, _createHashHistory.default)();
var createOpts = {
initialReducer: {
routing: _reactRouterRedux.routerReducer
},
setupMiddlewares: function setupMiddlewares(middlewares) {
return [(0, _reactRouterRedux.routerMiddleware)(history)].concat((0, _toConsumableArray2.default)(middlewares));
},
setupApp: function setupApp(app) {
app._history = patchHistory(history);
}
};
var app = core.create(opts, createOpts);
var oldAppStart = app.start;
app.router = router;
app.start = start;
return app;
function router(router) {
(0, _invariant.default)((0, _utils.isFunction)(router), "[app.router] router should be function, but got ".concat(typeof router));
app._router = router;
}
function start(container) {
// 允许 container 是字符串,然后用 querySelector 找元素
if (isString(container)) {
container = _document.default.querySelector(container);
(0, _invariant.default)(container, "[app.start] container ".concat(container, " not found"));
} // 并且是 HTMLElement
(0, _invariant.default)(!container || isHTMLElement(container), "[app.start] container should be HTMLElement"); // 路由必须提前注册
(0, _invariant.default)(app._router, "[app.start] router must be registered before app.start()");
oldAppStart.call(app);
var store = app._store; // export _getProvider for HMR
// ref: https://github.com/dvajs/dva/issues/469
app._getProvider = getProvider.bind(null, store, app); // If has container, render; else, return react component
if (container) {
render(container, store, app, app._router);
app._plugin.apply('onHmr')(render.bind(null, container, store, app));
} else {
return getProvider(store, this, this._router);
}
}
}
function isHTMLElement(node) {
return typeof node === 'object' && node !== null && node.nodeType && node.nodeName;
}
function isString(str) {
return typeof str === 'string';
}
function getProvider(store, app, router) {
return function (extraProps) {
return (0, _jsx2.default)(_reactRedux.Provider, {
store: store
}, void 0, router((0, _extends2.default)({
app: app,
history: app._history
}, extraProps)));
};
}
function render(container, store, app, router) {
var ReactDOM = require('react-dom'); // eslint-disable-line
ReactDOM.render(_react.default.createElement(getProvider(store, app, router)), container);
}
function patchHistory(history) {
var oldListen = history.listen;
history.listen = function (callback) {
callback(history.location);
return oldListen.call(history, callback);
};
return history;
}
module.exports = exports["default"];
zhubogongdeMBP:aimarket_web zhubg$ npm run build:dll
> aimarket_web@0.0.1 build:dll /Users/zhubg/ATMatrixProjects/aimarket_web
> roadhog buildDll
Creating dll bundle...
Failed to compile.
Module not found: Error: Can't resolve '@babel/runtime/helpers/extends' in '/Users/zhubg/ATMatrixProjects/aimarket_web/node_modules/dva/lib'
Module not found: Error: Can't resolve '@babel/runtime/helpers/interopRequireDefault' in '/Users/zhubg/ATMatrixProjects/aimarket_web/node_modules/dva/lib'
Module not found: Error: Can't resolve '@babel/runtime/helpers/interopRequireWildcard' in '/Users/zhubg/ATMatrixProjects/aimarket_web/node_modules/dva/lib'
Module not found: Error: Can't resolve '@babel/runtime/helpers/jsx' in '/Users/zhubg/ATMatrixProjects/aimarket_web/node_modules/dva/lib'
Module not found: Error: Can't resolve '@babel/runtime/helpers/toConsumableArray' in '/Users/zhubg/ATMatrixProjects/aimarket_web/node_modules/dva/lib'
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! aimarket_web@0.0.1 build:dll: `roadhog buildDll`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the aimarket_web@0.0.1 build:dll script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/zhubg/.npm/_logs/2017-12-11T10_18_37_692Z-debug.log
zhubogongdeMBP:aimarket_web zhubg$
dispatch({
type: 'global/changeLocale',
payload: {appLocale: enUS}
});
I'm using connect from dva: 2.1.0 with React.memo has error as ×
Unhandled Rejection (Invariant Violation): You must pass a component to the function returned by connect. Instead received {"compare":null}
ex:
function MyComponent() {
return (
)
}
const mapStateToProps = () => ({});
export default connect(mapStateToProps)(React.memo(MyComponent));
ReactDOM.render(
<MyConnectedComponent />,
document.getElementById('root'),
);
Please help me