【发布时间】:2017-04-09 04:25:43
【问题描述】:
通过使用 .bind 或在 JSX 道具中使用箭头函数。绑定调用或 JSX 道具中的箭头函数将在每个 单次渲染。
这是否意味着以下示例会在每次组件重新渲染时创建cardList.length 的新函数() => props.pressCard(card)?
const cards = cardList.map(card =>
<TouchableOpacity key={card.id} onPress={() => props.pressCard(card)}>
<Card {...card} />
</TouchableOpacity>
);
如果是这样的话,Redux 的mapDispatchToProps 呢?例如,
const mapDispatchToProps = (dispatch) => ({
pressCard: (card) => dispatch(homeActions.pressCard(card))
});
当组件中的状态更新时,它是否也会创建新函数?
【问题讨论】:
-
第一个定义每次渲染都会创建新函数。第二个 - 我看不到在状态更改时运行 mapDispatchToProps 的理由,因为您无法从那里访问状态。不知道 redux 是如何处理这个问题的。
标签: reactjs react-native redux