Как импортировать компонент на основе JavaScript или JSX в React.rb, чтобы он был доступен в ruby?
Использование примера, приведенного для React-Bootstrap и response.rb, работает отлично, но я пытаюсь заставить работать компонент NPN под названием React-TimeAgo, и я заблудился.
Вот что я сделал:
В index.js (для Webpack, чтобы импортировать его в пакет webpack):
window.bs = require('react-bootstrap')
window.timeago = require('react-timeago')
В фактическом component.rb у меня есть это:
class Rb < React::NativeLibrary
imports 'bs'
end
class TimeAgo < React::NativeLibrary
imports 'timeago'
end
Тогда ссылки на компоненты Bootstrap работают отлично:
Rb.Button(bsStyle: :primary) <- works as expected
Но мне не удается вытащить что-нибудь из оболочки TimeAgo:
TimeAgo.new(date: "Aug 29, 2014") {} <- just does nothing
TimeAgo(date: "Aug 29, 2014") {} <- method undefined
Что я делаю неправильно? Вся помощь приветствуется!
1 ответ
Я нашел обходной путь к этому, но это не так уж и красиво. Хотелось бы найти лучшее решение!
class TimeAgo < React::Component::Base
after_mount do
`React.render(React.createElement(window.timeago,
{date: 'apr 7, 2016'}),
document.getElementById('something_unique')
);`
end
def render
span(id: "something_unique") { }
end
end
Конечно, вам нужно убедиться, что идентификатор промежутка уникален, и вы указали дату в качестве реквизита, но я оставил это для краткости.