- Вы не должны сравнивать значения вашего объекта с innerText некоторых элементов ячейки таблицы
requiredDate
НЕ существует в object
в вашей итерации объекта - Ваш myListФормат объекта странный, я прикрепляю мой в data.js
// MyComponent.js
import React, { Component } from 'react'
import 'semantic-ui-css/semantic.min.css'
import { Icon, Table } from 'semantic-ui-react'
import moment from 'moment'
const dates = Array(6).fill().map((e, i) => moment().day(i+1).format('DD-MM'))
class MyComponent extends Component {
render() {
let myList = this.props.myList
let today = moment()
return (
<Table celled structured id="table">
<Table.Header>
<Table.Row>
<Table.HeaderCell rowSpan='2' textAlign='center'>Name</Table.HeaderCell>
<Table.HeaderCell colSpan='6' textAlign='center'>Dates</Table.HeaderCell>
</Table.Row>
<Table.Row textAlign='center'>
{dates.map((s, i) => <Table.HeaderCell key={i}>{s}</Table.HeaderCell>)}
</Table.Row>
</Table.Header>
<Table.Body>
{Object.keys(myList).map(function (key, j) {
return (
<Table.Row key={j}>
<Table.Cell>{key}</Table.Cell>
{myList[key].map(function (object) {
console.log(object)
let requiredDate = moment(object.givenDate, 'DD-MM')
if (today.isAfter(requiredDate)) {
for (let i = 0; i < dates.length; i++) {
let headerDate = dates[i]
let requiredDateStr = object.givenDate
if (requiredDateStr !== headerDate) {
return <Table.Cell textAlign='center'>
<Icon name='question' />
</Table.Cell>
}
else {
const isP = object.state === 'P'
return <Table.Cell>
<Icon color={isP? 'green': 'red'} name={isP? 'check': 'close'} size='large' />
{object.state}
</Table.Cell>
}
}
}
return null
})
}
</Table.Row>
)
})}
</Table.Body>
</Table>
)
}
}
export default MyComponent
/ * data.js * /
const P = 'P'
export default {
'Person One': [
{
givenDate: '28-05',
state: P,
id: 234,
},
{
givenDate: '29-05',
state: P,
id: 234
},
{
givenDate: '29-05',
state: P,
id: 234/* */
},
],
'Person Two': [
{
givenDate: '28-05',
state: P,
id: 234
},
{
givenDate: '29-05',
state: P,
id: 234
},
{
givenDate: '30-05',
state: P,
id: 234
},
],
'Person Three': [
{
givenDate: '28-05',
state: P,
id: 234
},
{
givenDate: '29-05',
state: P,
id: 234
},
{
givenDate: '30-05',
state: P,
id: 234
}
]
}