坑一:子组件的默认属性react
若是这样获取可选属性的默认值:数组
const { startScore = 0, currentScore = 0, endScore = 0, showStartAndEnd = true } = this.props;
而又没有实际传入属性的话页面中就会显示null
。咱们须要在子组件内这样定义默认属性:数据结构
static defaultProps = { currentScore: 0, startScore: 0, showStartAndEnd: true, endScore: 0, };
坑二:父组件中修改子组件样式this
若是子组件在多个地方用,那么就须要在不一样地方展现不一样的子组件样式,因此就须要在父组件中修改样式。而taro不能像react那样直接修改,而是须要这样麻烦的步骤:code
先在子组件中定义有哪些拓展的class:rem
static externalClasses = ['my-class', 'radio-class', 'img-class', 'info-class', 'add-class', 'count-class', 'delete-class'];
再将拓展的class应用到子组件样式可变的地方:it
<View className="Goods-radio radio-class" onClick={this.onSelectGoods}> <PRadio value={selected}/> </View>
如图中的radio-class
io
以后在父组件中应用对应的将对应的class做为属性传输:class
<Goods stock={item.goods.stock} goodsId={item.goods.id} key={index} my-class={'shopping-good'} radio-class={'Goods-radio'} count-class={'Goods-count'} delete-class={'Goods-remove'} img-class={'Goods-img'} info-class={'Goods-info'} >
如图中的radio-class
。如今咱们终于能够在父组件用Goods-radio
做为className来修改子组件的样式了。mobx
坑三
若是你想在JSX中使用复杂的数据结构,如mobx的数组,最好在用将数组复制,而后使用复制体。否则可能会不更新。