#reactjs
#reactjs
Вопрос:
У меня есть две таблицы, в которых одна содержит разные задания ( joblist
), а другая ( savedjobs
), в которой хранится копия этого конкретного задания joblist
. Это что-то вроде закладки задания для последующего использования.
Если я отображаю все задания на главном экране, я должен видеть сохраненные задания с выделением, говорящим, что они сохранены.
Я пробовал так:
{joblists amp;amp;
joblists.map(joblist => {
{
resultJobs amp;amp;
resultJobs.map(job => {
if (joblist.id === job.id)
return (
<i
id="heart"
name={joblist.id}
className="fas fa-heart float-right pr-4 text-danger"
onClick={this.saveJob1}
/>
);
});
}
})
}
Но что, если сохраненных заданий нет? Может кто-нибудь помочь?
Комментарии:
1. Не совсем понятно, чего вы хотите достичь. Вы хотите отобразить все элементы в
joblist
массиве, но каким-то образом выделить элемент, если элемент также присутствует вsavedjobs
массиве?2. Да, я хотел бы
<i onClick={this.saveJob} className = "fas fa-heart text-danger "></i>
знать, присутствуют ли данные в таблице savedjobs, а если нет<i onClick={this.saveJob} className = "far fa-heart text-primary "></i>
3. Не могу понять, почему вы сопоставляете дважды.. вы можете просто перебрать задания и проверить, есть ли это задание также в вашем сохраненном списке заданий. Если да, примените свой пользовательский стиль
Ответ №1:
Вы могли бы попробовать что-то вроде этого:
const jobList = ['Job A', 'Job B', 'Job C', 'Job D', 'Job E']
const savedJobs = ['Job C', 'Job D', 'Job E']
function App() {
const resultJobs = jobList.map((job,index) =>
<li key={index}>
{job}
{savedJobs.includes(job) ?
<React.Fragment>
<span>---</span>
<FontAwesomeIcon icon={faHeart} style={{color:'red'}}/>
</React.Fragment>
: ''}
</li>
);
return (
<ul>
{resultJobs}
</ul>
);
}