Я не уверен, где parent.js
живет в структуре вашего сайта.Но я сделал для вас код и окно примера .
Я определил значение по умолчанию в parent.js
, поэтому некоторые данные передаются в NavLink
, но вы должны иметь возможность реструктурироватьпример для ваших нужд.
https://codesandbox.io/s/jp4qr3q3ww?autoresize=1&expanddevtools=1&fontsize=14
app.js (index.js)
import React from "react";
import ReactDOM from "react-dom";
import { BrowserRouter, Route } from "react-router-dom";
import News from "./news.js";
import Parent from "./parent.js";
import "./styles.css";
function App() {
return (
<BrowserRouter>
<Route path="/" component={Parent} />
<Route path="/news" component={News} />
</BrowserRouter>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
parent.js
import React from "react";
import { NavLink } from "react-router-dom";
const Parent = props => (
<NavLink
to={{
pathname: "/news",
state: { all: props.content } // this is what I want to send and I receive it from another
}}
>
Todo
</NavLink>
);
Parent.defaultProps = {
content: "some content"
};
export default Parent;
новости.js
import React from "react";
export default class News extends React.Component {
constructor(props) {
super(props);
}
render() {
const foo = this.props.location.state;
console.log(foo); // Cannot read property 'state' of undefined..
console.log(this.props.location); // return undefined
console.log(this.props); // return empty {}
return (
<div className="container">
<section>
<h1>hello world </h1>
</section>
</div>
);
}
}