【问题标题】:Getting error when I import 'dayjs/local/en'?导入“dayjs/local/en”时出错?
【发布时间】:2021-01-26 04:23:26
【问题描述】:

我想在我的 react-native-gifted-chat 中添加语言环境,因为聊天不会一个接一个地显示出来,我猜是因为时区。

我将语言环境添加到我的天才聊天中:

 import en from 'dayjs/locale/en'

 render() { 
    return (
        <View style={{backgroundColor: '#000000', flex: 1}}>
            <GiftedChat
                showUserAvatar={true}
                isTyping={this.state.isTyping}
                renderUsernameOnMessage={true}
                messages={this.state.messages}
                onSend={message => this.onSend(message)}
                scrollToBottom
                locale = { en } <-----------------------------
                showAvatarForEveryMessage = {false}
                showUserAvatar= {true}
                dateFormat = 'll'
                timeFormat = 'LT'
                placeholder = "Talk to people..."
                onPressAvatar={user => this.getProfile(user)}
            />
        </View>
        
    )

但现在我得到了错误:

TypeError: undefined is not an object (evaluating 'n[M].replace')

这是因为我使用了错误的导入类型,还是现有聊天存在问题,我是否需要删除它们才能正常工作?

【问题讨论】:

    标签: javascript react-native react-native-gifted-chat


    【解决方案1】:

    查看文档,看来您需要单独导入语言环境文件。

    首先你需要导入daysjs:

    import dayjs from 'dayjs';
    

    然后你需要导入你想要的语言环境:

    import 'dayjs/locale/en'
    

    这似乎具有使该语言环境可用于格式化的全局变异副作用(不好)。

    在你的道具中,传入locale="en"

    然后在你的组件中(如果你拥有它)你可以使用dayjs(date).locale(this.props.locale).format()

    Daysjs 看起来不像是一个设计良好的库,因为导入不应该有这样的副作用。

    【讨论】:

    • 我希望这能解决问题!将更新推送给我的用户,您必须像这样导入它来修复问题是对的,
    • 嗨@kalculated!这个解决方案解决了吗?如果没有,您能否指出我的解决方案?我自己也遇到了。
    • @JoniVR 嘿,它对我有用。你只需要通过一个有天赋的聊天接受的日期
    猜你喜欢
    • 2018-07-17
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 2017-05-05
    • 2012-10-28
    • 2016-09-01
    相关资源
    最近更新 更多