我创建了一个名为Jobscard的元素,该元素将JobsList作为参数。我也试图使用react-router将此JobsCard设置为Router。
我已经研究了这个问题,他们在网络上似乎没有类似的问题,所有解决方案和指南都使用react组件,但这不适用于react Elements。这可能吗?
import React from 'react';
import { projectList } from './projectList';
import JobsCard from './JobsCard';
import { jobsList } from './jobsList';
import CardList from './CardList';
import Ham from './hamburger';
import { Route, Switch } from 'react-router-dom';
import { BrowserRouter } from 'react-router-dom';
import jobsList from './jobsList'
const App = () => {
return(
<div className='blue1 center'>
<BrowserRouter>
<Ham />
<Switch>
<Route exact path="/" render{props => <JobsCard jobsList={jobsList}> </JobsCard> }/>
<Route path="/projects" component={<CardList projectList={projectList}/>}/>
</Switch>
</BrowserRouter>
</div>
)
}
export default App;
JobsCard元素是
import React from 'react';
import Job from './Job.js'
const JobsCard = ({jobsList}) => {
const cardDraw = jobsList.map((proj, i) => {
return <Job key={i} title={jobsList[i].title}
website={jobsList[i].website} description={jobsList[i].description}
logo={jobsList[i].logo} company={jobsList[i].company} years={jobsList[i].years}/>
})
return (
<div className=" cf justify-center ma3">
{cardDraw}
</div>
);
}
export default JobsCard;
jobsList看起来像这样
import energyxchain from ''
export const jobsList = [
{ title: '',
website: '',
description: '',
logo: ,
company: '',
years: '2018-2019'
},
{
title: '',
company: '',
website: '',
logo: '',
description: '',
years: '2017-2018'
}];
我希望JobsCard是一条路线。
从路线渲染道具:
render
具有内联函数的,仅在必须将范围内的变量传递给要呈现的组件时才应使用。您应不使用
component
道具与内联函数通过调查范围内的变量,因为你会得到期望分量卸除/重新装载。
因此,您的路线应为ff:
使用component
prop(不应传递变量):
<Route
exact path="/"
component={JobsCard}
/>
使用render
道具:
<Route
exact path="/"
render={routeProps => (<JobsCard {...routeProps} jobsList={jobsList} />)}
/>
通常,您应该将导航与内部数据管理分开(使用redux connect
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句