2017-08-28 9 views
1

私は使用しています。ララベルです。ReactJS - ブレードからJSXへのパラメータを渡す

コントローラからブレードビューに値を渡すことができます。しかし、この値をビューからJSXに渡すにはどうすればよいですか。

私の見解は次のようになります。

<?php 
    echo $max_price; 
?> 

@extends('layouts.master') 


@section('content') 
    <div id="stocks"></div> 
@endsection 

私はここにMAX_PRICEにアクセスすることができます。しかし、どうすればJSXファイルに渡すことができますか?

pageComponent

var React = require('react'); 
var ReactDOM = require('react-dom'); 
var PageComponent = require('./PageComponent'); 

if (document.getElementById('stocks')) { 
    ReactDOM.render(<PageComponent />,document.getElementById('stocks')); 
} 

答えて

1

をレンダリングJSXファイルは、あなたがJSに、ブレードからのデータを共有するwindowオブジェクトを使用することができます。

<script type="text/javascript"> 
    window.maxPrice= {!! json_encode($max_price) !!}; 
</script> 

、その後、あなたのjsxファイルにwindow.maxPriceを使用することができます。

ReactDOM.render(<PageComponent maxPrice={window.maxPrice} />, 
    document.getElementById('stocks')); 

ただし、 jsxからwindow変数に直接アクセスすることを推奨します。 JSXで

export function getMaxPrice() { 
    return window.maxPrice; 
} 

、その後:これが動作している

ReactDOM.render(<PageComponent maxPrice={getMaxPrice()} />, 
    document.getElementById('stocks')); 
+0

おかげ代わりに、あなたはいくつかのヘルパーメソッドにwindowにアクセス包むことができます。ウィンドウ内に変数を渡すのではなく、これを行うより良い方法がありますか? 以前のプロジェクトでは、私はこのようなものを使用しました:コントローラーのputで、( 'stocks') - >( 'MAX_PRICE'、 "900")ビューを返します。 jsコンポーネントでは、MAX_PRICEを直接使用することができました。しかし、ここでは機能しません。 – fractal5

+0

あなたはウィンドウオブジェクトではなく、localStorageを使うことができます。重要ではない値をlocalStorageに保存し、そこから読み取ることも両方の方法で実行できます。 – bennygenel

関連する問題