[英]React Router Lodash helper function
I'm using react-router to route to /products/:id the id of a local data file, I'm using lodash helper to mach the URL params with the id of the data file, I get an error (TypeError: Cannot read property 'description' of undefined) when I navigate to "/products/124", I think the problem is in the lodash find helper function 我正在使用react-router将本地数据文件的ID路由到/ products /:id,我正在使用lodash助手来将URL参数与数据文件的ID进行匹配,但出现错误(TypeError:Cannot当我导航到“ / products / 124”时,读取未定义的属性“ description”,我认为问题出在lodash的find helper函数中
EachProject.js EachProject.js
import React, { Component } from 'react';
import find from 'lodash/find';
import { Link } from 'react-router-dom';
import './EachProject.css';
import PRODUCTS from '../../Data/CarouselData.js';
class EachProject extends Component {
render() {
const product = find(PRODUCTS, ['id',
parseInt(this.props.match.params.id)]);
const currentProduct = product;
return (
<div>
<h3 id="product-name">{currentProduct.description}</h3>
</div>
);
}
}
export default EachProject;
CarouselData.js CarouselData.js
const products = [
{
id: "124",
description:"garden and terrace duplexes and Gourmet Bazaar opened on the shore. Art Street, Performance Square.",
types: "2+1, 3+1",
area:"91m - 171m",
priceMin:"330,000 TL",
priceMax:"535,000 TL",
location: "Esenyurt, Istanbul",
status: "Under Construction",
installment: "36",
deliveryDate: "2018",
deliveryDateAr: "2018",
downPayment: "30",
}
]
export default products;
index.js index.js
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import { BrowserRouter, Route, Switch } from 'react-router-dom';
import App from './App';
import Services from './components/Routes/Services/Services.js';
import About from './components/Routes/About/About.js';
import Contact from './components/Routes/Contact/Contact.js';
import Projects from './components/Routes/Projects/Projects.js';
import registerServiceWorker from './registerServiceWorker';
import EachProject from './components/Routes/EachProject/EachProject.js';
ReactDOM.render(
<BrowserRouter>
<Switch>
<Route exact path="/products/:id" component={EachProject} />
<Route path="/projects" component={Projects} />
<Route path="/contact" component={Contact} />
<Route path="/about" component={About} />
<Route path="/services" component={Services} />
<Route path="/" component={App} />
</Switch>
</BrowserRouter>,
document.getElementById('root')
);
registerServiceWorker();
尽管ID是对象中的字符串,但由于某种原因您仍在解析为int:
const product = find(PRODUCTS, { id: this.props.match.params.id });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.