У меня есть этот компонент, который передает реквизит для дочернего компонента:
import React, { Component } from 'react'
import { BrowserRouter as Router, Route, NavLink } from 'react-router-dom'
import PortfolioPage from './PortfolioPage'
class PortfolioMenu extends Component {
constructor(props) {
super(props)
// here is the prop to be passed for a child component
this.state = {
interiorsUrl: "http://localhost:3001/interiors"
}
}
render() {
return (
<div>
<Router>
<div class="wrapper2">
<div class="wrapper-portfolio">
// here is the line to pass the prop
<Route exact path='/portfolio/interiores' render={() => <PortfolioPage interiorsUrl={this.state.interiorsUrl}/>} />
<nav>
<ul>
<li><NavLink activeClassName="active" exact to="/portfolio/interiores">• interiores</NavLink></li>
</ul>
</nav>
</div>
</Router>
</div>
)
}
}
export default PortfolioMenu
Вот дочерний компонент, который получает реквизиты:
import React, { Component } from 'react'
import axios from 'axios'
import Modal from 'react-responsive-modal';
import Lightbox from 'react-lightbox-component';
const URL = this.props.interiorsUrl;
class PortfolioPage extends Component {
constructor(props) {
super(props);
this.state = {
result: []
}
}
componentDidMount() {
axios.get(URL)
//...rest of the code omitted
В компоненте выше, естьсообщение об ошибке на консоли:
TypeError: Невозможно прочитать свойство 'interiorsUrl' из неопределенного
Указано на эту строку кода:
const URL = this.props.interiorsUrl;
Что я не так сделал?Спасибо.