javascript - 如何在 React JS 中使用聊天气泡像 UI 一样聊天

标签 javascript css reactjs material-ui jsx

我在 dummyData 中有一些 JSON 数据。我不确定如何根据 direction 将聊天气泡放置在左右两侧。我正在使用 Material UI 和上下文 API。图片供引用。除了 Material UI,我不想使用任何库。

enter image description here

目前,每个聊天气泡都位于左侧。如何根据方向定位气泡。到目前为止的代码(CodeSandbox):

    import React from 'react';
import makeStyles from '@material-ui/core/styles/makeStyles';

const useStyles = makeStyles(theme => ({
    container: {
        bottom: 0,
        position: 'fixed'
    },
    bubbleContainer: {
        width: '100%'
    },
    bubble: {
        border: '0.5px solid black',
        borderRadius: '10px',
        margin: '5px',
        padding: '10px',
        display: 'inline-block'
    }
}));

const ChatLayout = () => {
    const classes = useStyles();
    const dummyData = [
        {
            message: '1: This should be in left',
            direction: 'left'
        },
        {
            message: '2: This should be in right',
            direction: 'right'
        },
        {
            message: '3: This should be in left again',
            direction: 'left'
        }
    ];

    const chatBubbles = dummyData.map((obj, i = 0) => (
        <div className={classes.bubbleContainer}>
            <div key={i++} className={classes.bubble}>
                <div className={classes.button}>{obj.message}</div>
            </div>
        </div>
    ));
    return <div className={classes.container}>{chatBubbles}</div>;
};

export default ChatLayout;

最佳答案

您可以创建单独的聊天气泡 div 并应用 CSS。在您接收消息的位置将气泡 div 附加到您的用户列表。

关于javascript - 如何在 React JS 中使用聊天气泡像 UI 一样聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58161615/

相关文章:

css - 使用纯 CSS(无 javascript)生成随机颜色?

css - 为什么 Html.TextBoxFor 没有覆盖 Asp.Net MVC 中的所有页面?

javascript - 在 React.js 中映射数组时仅设置少数元素的样式

JavaScript - 随机单击特定的锚定标签

javascript - searchkit:RefinementListFilter 无法访问 json 中的某些数据

html - 颜色代码在代码的不同部分有不同的作用

android - 'gradlew' 不是内部或外部命令、可运行程序或批处理文件

javascript - 如何使用 jquery/javascript 切换某些元素?

javascript - Visual Studio Lightswitch HTML 客户端验证失败

javascript - 我收到未处理的拒绝(类型错误): router.transitionTo 不是函数。可能出了什么问题?