我有以下组成部分:

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/

10-11 05:52
查看更多