Я новичок в React, и у меня возникла проблема с передачей пользовательских свойств в this.props.children. Я пробовал React.cloneElement и вижу опору, когда делаю console.info в классе, который я создал, но он теряется, когда я пытаюсь пропустить его. Я не знаю, может быть, React-Router-Dom что-то делает, чтобы пропустить опору. любая помощь будет принята с благодарностью.
Я начал этот проект, используя Create-React-App из GitHub. У меня установлено следующее программное обеспечение.
"react": "^16.3.2",
"react-dom": "^16.3.2",
"react-redux": "^5.0.6",
"react-router-dom": "^4.2.2",
"react-scripts": "1.1.4",
"redux": "^3.7.2",
в App.js
render() {
return (
<Provider store = {store}>
<BrowserRouter>
<Switch>
<Route exact path = "/" component = {LoginPage} />
<Route path = "/Login" component = {LoginPage} />
<RootPage>
<Route path = "/TestPage" component = {testPage} />
</RootPage>
</Switch>
</BrowserRouter>
</Provider>
);
}
в RootPage.js (родительский)
render() {
const { classes, theme, children } = this.props;
var childrenWithProps = React.Children.map(children, child => React.cloneElement(child, { doSomething: "Test String" }));
console.info(childrenWithProps)
return (
<div>
{childrenWithProps}
</div>
);
}
С console.info выше в RootPage.js я вижу опору «doSomething».
в TestPage.js (Ребенок)
render(){
const { classes, theme } = this.props;
console.info(this.props)
return (
<div>
</div>
);
}
в приведенном выше console.info в TestPage.js я не вижу пропуска "doSomething", который я передал.
Спасибо за любую помощь.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Распространите props на компонент TestPage из компонента Route.
<RootPage>
<Route path = "/TestPage" render = {props => <TestPage {...props} /> }/>
</RootPage>
Я думаю, вы упускаете мою мысль. Я отредактировал ответ. Проверить еще раз.
Я новичок в React, не говоря уже о веб-разработчиках. Я понимаю, что если бы у меня были функции и состояние в моем файле App.js, где объявлены маршруты, я мог бы использовать то, что есть у вас. Я просто не могу понять, как с помощью приведенного выше кода запустить функцию, которая находится в RootPage.js, из TestPage.js. RootPage будет там, где мой заголовок и боковая панель навигации, поэтому в нем необходимо вызывать функции. Если я чего-то упускаю, не могли бы вы указать мне правильное направление, чтобы узнать это? Стоит ли переместить эти функции в app.js?
Спасибо за быстрый ответ, я попробовал то, что у вас есть, и мне удалось передать реквизиты из App.js, но мне действительно нужно передать их из RootPage.js. На корневой странице есть функции, которые должна вызывать TestPage. Может быть, я что-то упускаю, есть ли способ сделать это, используя то, что у вас есть выше?