我正在尝试从regressions_test_summary访问分辨率时间戳变量,但是却收到类型错误,提示无法读取未定义的“ resolution_map”属性。
函数代码:
export const getRegressionTestStatus = summary => {
if(summary.regression_test_summary.resolution_timestamp === null) return 'Unresolved'
else if(summary.unit_test_fails || summary.unit_test_errors) return 'Failed'
else if(!summary.unit_test_fails && !summary.unit_test_errors) return 'Success'
console.log('from summary', summary);
}
export const getLogIcon = (unitTest, size) => {
if(unitTest.result && typeof(unitTest.result[0]) === 'string') {
return <ErrorIcon className={`LogIcon${size} TestError`} />
}
else {
return <FiberManualRecordIcon
className={`LogIcon${size} ${!unitTest.result ? 'TestNA' : unitTest.result[0] ? 'TestPass' : 'TestFail'}`}
/>
}
}
regressiontestData:
const getIcon = (summary) => {
const status = getRegressionTestStatus(summary)
if(status === 'Unresolved') return <ScheduleIcon style={{color: 'var(--update-bg-color)'}} />
else if(status === 'Failed') return <CloseIcon style={{color: 'var(--reject-fg-color)'}} />
else if(status === 'Success') return <CheckIcon style={{color: 'var(--approve-bg-color)'}} />
console.log('summary', summary);
}
useEffect(() => {
async function onLoadRegressionTests() {
loading.setLoading(true)
const results = await verifiedGet(`get_regression_tests/${(currentPage - 1) * resPerPage}/${resPerPage}`, user.user)
if(results.status === 0) {
setRegressionTestsData(results.data)
setPageNumbers(getPageNumbersList(results.total_count, resPerPage))
} else if(results.status >=20 && results.status <=30) {
snackbar.statusCheck(results)
user.setSessionTokenMatches(false)
} else snackbar.statusCheck(results)
loading.setLoading(false)
}
if(user.f_auth([1, 20])) onLoadRegressionTests()
else setRegressionTestsData('You do not have the authority to view this page.')
}, [currentPage])
const onRegressionTestClick = (id) => props.history.push(`test?id=${id}`)
const onRequestRegressionTestClick = () => props.history.push('/requesttest')
const onPageNumberClick = (pageNum) => {
setCurrentPage(pageNum)
}
答案 0 :(得分:1)
我可以看到摘要是一个数组。您无法访问像这样的数组元素的属性。
获得摘要时,请尝试以下操作:
const getIcon = summary.data.map((item) => {
const status = getRegressionTestStatus(item)
if(status === 'Unresolved') return <ScheduleIcon style={{color: 'var(--update-bg-color)'}} />
else if(status === 'Failed') return <CloseIcon style={{color: 'var(--reject-fg-color)'}} />
else if(status === 'Success') return <CheckIcon style={{color: 'var(--approve-bg-color)'}} />
)}
这将返回您想要的图标的新数组。