Closed givingwu closed 5 years ago
function getProvider(store, app, router) { const DvaRoot = extraProps => ( <Provider store={store}> { router({ app, history: app._history, ...extraProps }) } </Provider> ); return DvaRoot; }
// 5. Start with extra props app.start('#root', { routes, menus, });
// use in RouterConfig export default function RouterContainer ({ app, history, menus, routes, redirect }) { // ... }
否则的话我得这样使用 ```javascript app.otherProps = { routes, menus, }; app.start('#root') // use in RouterConfig export default function RouterContainer ({ app, history }) { // 挺丑陋的写法 const { menus, routes, redirect } = app.otherProps; // ... }
如果你非常忙的话,我可以提一个PR。且这个不会影响任何已有功能。
在 start 方法入口加入一个参数
function start(container, extraProps) { // .... if (container) { render(container, store, app, app._router, extraProps); app._plugin.apply('onHmr')(render.bind(null, container, store, app)); } else { return getProvider(store, this, this._router, extraProps); } }
在 render 方法中加入这个参数
function render(container, store, app, router, extraProps) { var ReactDOM = require('react-dom'); // eslint-disable-line ReactDOM.render(_react.default.createElement(getProvider(store, app, router, extraProps)), container); }
修改 getProvider 方法中加入该参数
function getProvider(store, app, router, extraProps) { var DvaRoot = function DvaRoot() { return _react.default.createElement(_reactRedux.Provider, { store: store }, router((0, _objectSpread2.default)({ app: app, history: app._history }, extraProps))); }; return DvaRoot; }
当然,你可能有更好的解决方法,或者我一开始就理解错了。你在某个地方留了这个入口,不过我没有翻到/读到。
谢谢。
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
// use in RouterConfig export default function RouterContainer ({ app, history, menus, routes, redirect }) { // ... }
如果你非常忙的话,我可以提一个PR。且这个不会影响任何已有功能。
在 start 方法入口加入一个参数
在 render 方法中加入这个参数
修改 getProvider 方法中加入该参数
当然,你可能有更好的解决方法,或者我一开始就理解错了。你在某个地方留了这个入口,不过我没有翻到/读到。
谢谢。