2017-02-24 24 views
4

的文檔提到不必創建自定義組件的能力:http://intljusticemission.github.io/react-big-calendar/examples/index.html#prop-components如何爲反應大日曆創建自定義事件組件?

我已經試過:

<BigCalendar 
    events={this.state.bookings} 
    step={60} 
    timeslots={1} 
    defaultView='week' 
    defaultDate={new Date()} 
    min={new Date(this.state.today.getFullYear(), this.state.today.getMonth(), this.state.today.getDate(), 8)} 
    components={{ 
    event: <EventComponent /> 
    }} 
/> 

其中EventComponent是:

class EventComponent extends React.Component { 
    render() { 
    return <h1>here we go!</h1> 
    } 
} 

但我得到的錯誤是:

Warning: Failed prop type: Invalid prop `components.event` of type ReactElement supplied to `Calendar`, expected an element type (a string or a ReactClass). 
    in Calendar (created by Uncontrolled(Calendar)) 
    in Uncontrolled(Calendar) (at calendar.jsx:50) 
    in div (at calendar.jsx:48) 
    in Calendar (created by RouterContext) 
    in div (at App.js:17) 
    in div (at App.js:15) 
    in App (created by RouterContext) 
    in RouterContext (created by Router) 
    in Router (at index.js:27) 
    in Provider (at index.js:26) 

Unhandled rejection Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object. Check the render method of `DaySlot`. 
    at invariant (http://localhost:3000/static/js/bundle.js:11534:16) 
    at instantiateReactComponent (http://localhost:3000/static/js/bundle.js:25911:24) 
    at instantiateChild (http://localhost:3000/static/js/bundle.js:25716:29) 
    at http://localhost:3000/static/js/bundle.js:25743:17 
    at traverseAllChildrenImpl (http://localhost:3000/static/js/bundle.js:27459:6) 
    at traverseAllChildren (http://localhost:3000/static/js/bundle.js:27554:11) 

那麼我該怎麼做?

回答

3

你必須改變這一部分:

components={{ 
    event: <EventComponent /> 
    }} 

與此:

components={{ 
    event: EventComponent 
    }} 
+0

這擺脫了錯誤。但是某一天所有事件的組成部分是什麼? – Shamoon

+1

我把這個例子從文檔和工作得很好: 常量EventComponent =(事件)=> { 回報 ( 在這裏我們去 !)} –

+0

你的組件是有,但隱藏因爲你正在使用的那種標籤。我的意思是沒有正確顯示。 –