我有三个组件,TypeList、ConnectedType(=connect(mapStateToProps)(Type
(和Type。Type将从TypeList(onClick, name
(和ConnectedType的mapStateToProps(onMiniPokemonClick, miniPokemon
(接收道具,TypeList将道具传递给ConnectedType。在映射miniPokemon
之前,我如何检查它是否存在?有可能在功能组件上进行逻辑运算吗?或者我必须把它变成一个类并在里面创建一个辅助函数吗?
const Type = ({onClick, name, onMiniPokemonClick, miniPokemon}) => (
<li
onClick={onClick}
>
{name}
<ul>
{
if (miniPokemon) {
miniPokemon.map(function (pokemon, idx) {
return (<MiniPokemon onClick={() => onMiniPokemonClick(pokemon.name)} name={pokemon.name}/>)
})
}
}
</ul>
</li>
)
您所需要做的就是使用括号来允许多行函数体
const Type = ({onClick, name, onMiniPokemonClick, miniPokemon}) => {
// some logic
return (
<li
onClick={onClick}
>...
</li>
)
}
或者,如果您只需要确保当出现空/未定义值时miniPokemon
是一个数组,您可以提供一个默认参数:
({onClick, name, onMiniPokemonClick, miniPokemon = []})