更改 react-big-calendar 事件的颜色

新手上路,请多包涵

我需要制作一个包含事件的日历,因此我决定使用 react-big-calendar 。但是我需要制作不同颜色的事件。所以每个事件都会有一些类别,每个类别都有相应的颜色。如何通过反应更改事件的颜色? 反应大日历相同颜色的例子

结果应该是这个样子 反应大日历不同颜色的例子

原文由 Max Zavernutiy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

抱歉,我没有仔细阅读文档。它可以在 eventPropGetter 属性的帮助下完成。我是这样做的:

 eventStyleGetter: function(event, start, end, isSelected) {
    console.log(event);
    var backgroundColor = '#' + event.hexColor;
    var style = {
        backgroundColor: backgroundColor,
        borderRadius: '0px',
        opacity: 0.8,
        color: 'black',
        border: '0px',
        display: 'block'
    };
    return {
        style: style
    };
},

render: function () {

    return (
        <Layout active="plan" title="Planning">
            <div className="content-app fixed-header">
                <div className="app-body">
                    <div className="box">
                        <BigCalendar
                            events={this.events}
                            defaultDate={new Date()}
                            defaultView='week'
                            views={[]}
                            onSelectSlot={(this.slotSelected)}
                            onSelectEvent={(this.eventSelected)}
                            eventPropGetter={(this.eventStyleGetter)}
                            />
                    </div>
                </div>
            </div>
        </Layout>
    );
}

原文由 Max Zavernutiy 发布,翻译遵循 CC BY-SA 3.0 许可协议

关于如何设置不同类型事件样式的其他提示:在 myEvents 事件对象数组中,我给每个对象一个布尔属性 isMine ,然后我定义:

 <BigCalendar

  // other props here

  eventPropGetter={
    (event, start, end, isSelected) => {
      let newStyle = {
        backgroundColor: "lightgrey",
        color: 'black',
        borderRadius: "0px",
        border: "none"
      };

      if (event.isMine){
        newStyle.backgroundColor = "lightgreen"
      }

      return {
        className: "",
        style: newStyle
      };
    }
  }
/>

原文由 Morris 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题