2016-04-07 1 views
0

React-Bootstrapとreact.rbの例は完全に動作しますが、React-TimeAgoというNPNコンポーネントを動作させようとしていますが、紛失しています。 JavaScriptやJSXベースのコンポーネントをReact.rbにインポートするにはどうすればよいですか?

この

は私がやっていることです:私はこれを持っている実際のcomponent.rbで

window.bs = require('react-bootstrap') 
window.timeago = require('react-timeago') 

::(WebPACKのはWebPACKのバンドルにインポートするため)index.jsで

class Rb < React::NativeLibrary 
    imports 'bs' 
end 

class TimeAgo < React::NativeLibrary 
    imports 'timeago' 
end 

次に参照するブートストラップコンポーネントは完璧に動作:

Rb.Button(bsStyle: :primary) <- works as expected 

しかし、私はTimeAgoラッパーの外に何かを得るために管理していないのです。私は間違って何をやっている

TimeAgo.new(date: "Aug 29, 2014") {} <- just does nothing 
TimeAgo(date: "Aug 29, 2014") {}  <- method undefined 

?すべての助けに感謝!

+0

try TimeAgo :: TimeAgo(date: "Aug 29、2014") –

+0

また、jsコンソールでOpal.TimeAgoを見て、そこにあるものを参照してください –

答えて

0

私はこれに回避策を見つけましたが、それほど美しいものではありません。より良い解決策を見つけるのが大好きです!もちろん

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 

あなたはスパンのidがユニークであり、あなたが小道具として日を過ぎ、私は簡潔さのためにそれを取り残さ確保する必要があります。

+0

react.rbの作者と作業していますこれは将来の宝石のバージョンで動作しますので、PRしてください。それが起こると私はここで更新します。 – BarrieH

関連する問題