Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 路由器是否将变量/状态传递给新路由?_Node.js_Reactjs_React Router_Router - Fatal编程技术网

Node.js 路由器是否将变量/状态传递给新路由?

Node.js 路由器是否将变量/状态传递给新路由?,node.js,reactjs,react-router,router,Node.js,Reactjs,React Router,Router,我在一个组件中创建了一个动态变量,然后该组件路由到另一个组件。如何传递变量 A部分 import React, { Component } from 'react'; class Event extends React.Component { makeVariable(event) { myVariable = '123abc' } {window.location.replace("/B")} render () { return (html for page A

我在一个组件中创建了一个动态变量,然后该组件路由到另一个组件。如何传递变量

A部分

import React, { Component } from 'react';

class Event extends React.Component {
   makeVariable(event)
   { myVariable = '123abc' }

   {window.location.replace("/B")}

   render () { return (html for page A)
}
export default A;
B部分

import React, { Component } from 'react';

class B extends Component {
    render(){ console.log(myVariable)}
}
export default B;
路由文件

export const makeMainRoutes = () => {
  return (
    <Router history={history}>
        <div>
          <Route path="/A" render={(props) => <App auth={auth} {...props} />} />
          <Route path="/B" render={(props) => <Home auth={auth} {...props} />} />
)}
export const makeMainRoutes=()=>{
返回(
} />
} />
)}

在React Router 4中,您应该能够通过
props.location.search访问查询参数

A部分

window.location.replace(`/B?myVariable=${myVariable}`);
B部分

import queryString from 'query-string';

render() {
  console.log(queryString.parse(this.props.location.search).myVariable));
}

我不太确定这是否是你要问的,但我假设是:)

假设这是要从组件A发送到组件B的数据

const yourData = [{name: 'Tom', age: 28}, {name: 'Sara', age: 25}, {name: 'Rick', age: 34}];
您可以使用
链接
标记将数据从一个组件传递到另一个组件,如下所示:

<Link to={{ pathname: `/component/b`, state: { yourData } }}></Link>

[可能会添加一个按钮标签,以便用户可以单击它,转到下一条路线,在那里传递必要的数据]。。。然后,在组件B中,您可以如下方式访问数据:

<Link to={{ pathname: `/component/b`, state: { yourData } }}></Link>
const passedData=this.props.history.location.state.yourData;

您希望如何/何时传递数据?也许通过点击一个按钮?谢谢,这是可行的,但是如果我想让myVariable保存一个对象呢?似乎不起作用它给了我{createdEvent:“[object object]”}如果要在路由级组件之间传递对象,您真正想要的似乎是像Redux这样的全局状态管理器。查询参数方法仅适用于简单情况。感谢您的帮助,我认为这是通过按钮单击或链接单击路由到新链接,但我需要从函数内部转到新路由,因此第一个响应看起来更像我需要的