我有以下组成部分:
import React from 'react';
import porgectsCollection from './../data/projectInfo.js';
class SingleProject extends React.Component {
getProjectId() {
let projectID = porgectsCollection.filter(el => {
return (el.title = {this.props.params.id});
});
}
render () {
console.log(this.getProjectId);
return (
<div>
<h2>{this.props.params.id}</h2>
</div>
);
}
}
export default SingleProject;
和我的routes.jsx,如下所示:
import React from 'react';
import { Route, Router, IndexRoute } from 'react-router';
import ReactDOM from 'react-dom';
import Wrapper from './../wrapper.jsx';
import Home from './../home.jsx';
import Projects from './../projects.jsx';
import SingleProject from './../singleProject.jsx';
ReactDOM.render((
<Router>
<Route component={Wrapper} >
<Route path="/" component={Home} />
<Route path="projects" component={Projects} />
<Route path="projects/:id" component={SingleProject} />
</Route>
</Router>
), document.getElementById('app'));
根据传入的ID:
<Route path="projects/:id" component={SingleProject} />
我想获取该值并筛选来自以下数组:
import porgectsCollection from './../data/projectInfo.js';
然后,我尝试使用此功能:
getProjectId() {
let projectID = porgectsCollection.filter(el => {
return (el.title = {this.props.params.id});
});
}
以显示正确的数据。
我不确定这是否是正确的方法,但是我在运行webpack时也遇到错误:
意外的令牌,指向{this.props.params.id}
最佳答案
您不需要括号-它只是在普通的JS函数中:
getProjectId() {
let projectID = porgectsCollection.filter(el => {
return el.title === this.props.params.id;
});
}
一些更简洁的格式:
getProjectId() {
return porgectsCollection.filter(el => el.title === this.props.params.id);
}
(您也在“项目”中打错了字,但我保持一致)
关于javascript - 根据this.props.params.id react 过滤器数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39831116/