У меня есть эти кнопки в моем приложении, на них есть метка, которая блокирует использование кнопки, если пользователь не совершил покупку в приложении для удаления меток. Используя несколько учетных записей «песочницы», я протестировал, что если пользователь совершает покупку, а затем закрывает приложение и открывает его снова, ярлыки исчезают. Тем не менее, когда пользователь впервые совершает покупку, ярлыки остаются, и только когда пользователь снова нажимает заблокированные кнопки, они исчезают (На этот раз при нажатии кнопок кнопки не выполняют свою предполагаемую функциональность, кнопки нужно нажимать снова, чтобы выполнять их предполагаемую функциональность).
Я посмотрел провайдера и функцию соединения из'act-redux ', похоже, у меня есть все, что мне нужно, основываясь на коде за последние 5 минут этого учебник но мои кнопки не обновляются при обновлении состояния магазина
class SButton extends React.Component{
render(){
let props = this.props
let onPrs
let premiumLabel
if (props.premium && !props.purchases.length > 0 ){
onPrs = () => askForPurchase()
premiumLabel = <PremiumLabel />
}else{
onPrs = () => playSound(props.sound)
}
return(
<TouchableOpacity style={styles.button} onPress={onPrs} >
<Text style={styles.text}>{props.name}</Text>
{premiumLabel}
</TouchableOpacity>
)
}
}
const mapStateToProps = state => {
return {
purchases: state.purchases
};
}
const SoundButton = connect(mapStateToProps)(SButton)
const Row = (props) => {
return(
<View style={styles.row}>
{props.sounds.map(sound => <Provider store={store}><SoundButton key={sound[0]} name={sound[0]} sound={sound[1]} premium={sound[2] == "premium"}/></Provider>)}
</View>
)
}