Reputation:
I want to use a ternary operator to control whether or not you map over allTestTypes. allTestTypes is supposed to be used to populate the options parameter in DropdownSingle
{allTestTypes.map(item => item.test_type )}
{!level ? null :
<React.Fragment>
<div>{configs[level].name}:</div>
<DropdownSingle
name={configs[level].name}
value={testType}
options={configs[level].dropdownValues}
onChange={onTestFieldUpdate}
/>
</React.Fragment>
})
Update:
{!level ? setAllTestTypes.map((item => null :
<React.Fragment>
<div>{configs[level].name}:</div>
<DropdownSingle
name={configs[level].name}
value={testType}
options={configs[level].dropdownValues}
onChange={onTestFieldUpdate}
/>
</React.Fragment>
)
})
Error:
update 2:
{!level ? null : setAllTestTypes.map((item) =>
<React.Fragment>
<div>{configs[level].name}:</div>
<DropdownSingle
name={configs[level].name}
value={testType}
options={item.test_type}
onChange={onTestFieldUpdate}
/>
</React.Fragment>
)})
Upvotes: 0
Views: 291
Reputation: 525
you are missing a closing }
. this should fix it.
{!level ? setAllTestTypes.map((item =>
<React.Fragment>
<div>{configs[level].name}:</div>
<DropdownSingle
name={configs[level].name}
value={testType}
options={configs[level].dropdownValues}
onChange={onTestFieldUpdate}
/>
</React.Fragment>
)
}) : null
}
Upvotes: 0
Reputation: 1725
const foo = truthy ? <jsx /> : null
- or - const foo = truthy && <jsx />
Upvotes: 0
Reputation: 351
condition ? functionForMapping : oppositeCase
You may either place the entire mapping statement here, or just simply wrap it in another function.
Upvotes: 0
Reputation: 2379
If you want to check a condition before mapping any array items:
<div>
{
!!condition && (
array.map(item => item /* Mapping Function */)
)
}
</div>
If you wish to only map certain items use filter:
<div>
{
array
.filter(item => !!item /* Condition */)
.map(item => item /* Mapping Function */)
}
</div>
Upvotes: 0