Я думаю, что одной из основных идей реагирования является использование компонентов для структурирования вашего кода.
Так что один из способов сделать это было бы так:
render() {
const statement = true;
const Stuff = ({statement}) => {
if (!statement) { return null; }
return this.buildStuff();
}
return (
);
}
Обновлен StackBlitz .
Проверьте драгоценный камень Google Calendar для направляющих. Это позволяет Вам отобразить Google Calendar пользователя в своем приложении для направляющих, и у них есть демонстрационные отрывки, показывающие, как экспортировать события в Google Calendar:
require 'googlecalendar'
g = GData.new
g.login('REPLACE_WITH_YOUR_MAIL@gmail.com', 'REPLACE_WITH_YOUR_PASSWORD')
event = { :title=>'title',
:content=>'content',
:author=>'pub.cog',
:email=>'pub.cog@gmail.com',
:where=>'Toulouse,France',
:startTime=>'2007-06-06T15:00:00.000Z',
:endTime=>'2007-06-06T17:00:00.000Z'}
g.new_event(event)
Для iCal используйте iCalendar драгоценный камень, и затем можно экспортировать события следующим образом:
require ‘icalendar’
class EventController < ApplicationController
def export_events
@event = Event.find(params[:id])
@calendar = Icalendar::Calendar.new
event = Icalendar::Event.new
event.start = @event.dt_time.strftime(”%Y%m%dT%H%M%S”)
event.end = @event.dt_time.strftime(”%Y%m%dT%H%M%S”)
event.summary = @event.summary
event.description = @event.description
event.location = @event.location
@calendar.add event
@calendar.publish
headers['Content-Type'] = “text/calendar; charset=UTF-8″
render_without_layout :text => @calendar.to_ical
end
end