【发布时间】:2018-04-25 00:48:14
【问题描述】:
有没有一种方法可以将数组线道具传递给子组件以与<Link to="/abc/results"> 做出反应 - 结果组件需要来自主组件的数组来呈现数据。这个怎么做?
还有其他关于发送单个 id 的讨论 - 也附加到 url - 但我的问题是 - 有没有一种方法可以发送数据,比如使用 Link 的 n 个对象的数组?
更新: 客户端/index.js
import React from 'react';
import { render } from 'react-dom';
import { BrowserRouter as Router } from 'react-router-dom';
import { Provider } from 'react-redux';
import store from '../components/redux/store';
import App from '../components/app/app';
render((
<Provider store={store}>
<Router>
<App />
</Router>
</Provider>
), document.getElementById('root'));
server.js:
export default function (req, res, next) {
const store = createStore(reducers, {}, applyMiddleware(thunk));
let foundPath = null;
let { path, component } = routes.routes.find(
({ path, exact }) => {
foundPath = matchPath(req.url,
{
path,
exact,
strict: false
}
);
return foundPath;
}) || {};
if (!component) {
component = {};
}
if (!component.fetchData) {
component.fetchData = () => new Promise((resolve, reject) => resolve());
}
component.fetchData({ store, params: (foundPath ? foundPath.params : {}) }).then(() => {
const state = store.getState();
const preloadedState = JSON.stringify(state).replace(/</g, '\\u003c');
const context = {};
const html = ReactDOMServer.renderToStaticMarkup(
<Provider store={store} >
<Router location={req.url} context={context} >
<App />
</Router>
</Provider>
);
....
<Link to={{ pathname: '/abc/testing/results', state: { results: resultsArray } }}> Click </Link>
路线: ....
routes: [
{
path: '/abc/testing/results',
component: Results,
exact: true
},
{..},
{..},
]
......
【问题讨论】:
标签: reactjs redux react-router react-router-v4