Попытка обновить renderCustomView в GiftedChat после изменения состояния - PullRequest
0 голосов
/ 23 апреля 2020

Я сигнализирую об изменении состояния в функции onLongPress, однако renderCustomView не обновляет / повторно отображает свой новый вид. Я пытался использовать this.forceUpdate (), но безуспешно. Я предоставил точку зрения, которую я пытаюсь представить после изменения состояния.

https://i.stack.imgur.com/Perfv.png

 displayEmojis(){
        if(this.state.toggle){
        return(
        <View 
        style={{flexDirection:'row', right:'35%',  backgroundColor:'white', zIndex:3, overlayColor: 'white',borderRadius:30,  paddingHorizontal:'10%', bottom:'2%' }}>
        {this.beerEmoji()}
        {this.partyEmoji()}
        {this.laughingEmoji()}
        {this.happyEmoji()}
        {this.cryingEmoji()}
        </View>
        )
      }
    }

    toggleEmojis = (val) => {
        this.setState({toggle: true})
    }


    render() {
        return (
            <View style={{ flex: 1 }}>
                <GiftedChat
                    keyboardShouldPersistTaps={'handled'}
                    messages={this.state.messages}
                    onSend={messages => this.onSend(messages)}
                    placeholder={"Post something..."}
                    isKeyboardInternallyHandled={false}
                    renderQuickReplySend={true}
                    multiline={true}
                    alwaysShowSend={true}
                    onLongPress={(context, message)=> this.toggleEmojis()}
                    user={{ _id: 1 }}
                    renderCustomView={this.displayEmojis}
                    renderMessage={this.renderMessage} />
                <KeyboardSpacer />
            </View>
        )
    }
}

1 Ответ

0 голосов
/ 23 апреля 2020

Я решил эту проблему с помощью свойства extraData = {this.state} в GiftedChat

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...