Я продолжаю получать эту ошибку: Changing onViewableItemsChanged on the fly is not supported
Я следовал за документацией и удостоверился, что предоставил конфигурацию видимости и onViewableItemsChanged; Наряду с этим я также включил их в конструктор класса
Это мой компонент:
class Messages extends Component {
constructor(properties) {
super(properties);
this.onViewableItemsChanged.bind(this)
this.viewabilityConfig = {
viewAreaCoveragePercentThreshold: 95
}
}
state = {
commentsToUpdateAsRead: [],
unreadComments: []
}
onViewableItemsChanged = ({viewableItems, changed}, commentWasViewed) => {
let commentIdsToUpdate = viewableItems.map(v=>v.item._id)
let currentIdsWithNewIds = [...commentIdsToUpdate, ...this.state.commentsToUpdateAsRead]
currentIdsWithNewIds = [...new Set(currentIdsWithNewIds)]
this.setState({ commentsToUpdateAsRead: currentIdsWithNewIds })
commentWasViewed()
}
componentWillMount(){
this.setState({ unreadComments: this.props.unreadComments })
}
render(){
return(
<Mutation mutation={COMMENT_WAS_VIEWED} variables={{ id: this.state.commentsToUpdateAsRead }}>
{(commentWasViewed, { loading, error, data }) => {
// {data && console.log(data)}
return <View
style={{
flex: 1,
backgroundColor: 'white'
}}
>
<ScrollView>
<SafeAreaView>
<FlatList
data={this.state.unreadComments}
renderItem={({ item }) => (
<MessageItem
content={item.content}
user_name={item.user_name}
createdAt={item.createdAt}
/>
)
}
onViewableItemsChanged={(e) => {
this.onViewableItemsChanged(e,commentWasViewed)
}}
viewabilityConfig={this.viewabilityConfig}
/>
</SafeAreaView>
</ScrollView>
</View>
}}
</Mutation>
)
}
}
Есть ли что-то очевидное, чего мне не хватает onViewableItemsChanged, который заставляет ошибку продолжать бросать?