ReactJS - 将参数从 blade 传递给 JSX

ReactJS - Pass parameter from blade to JSX

我正在使用 ReactLaravel.

我能够将值从我的控制器传递到 blade 视图。但是我怎样才能将这个值从视图传递到 JSX.

我的观点是这样的:

<?php
    echo $max_price;
?>

@extends('layouts.master')


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

我可以在这里访问 max_price。但是如何将它传递给 JSX 文件。

呈现 pageComponent 的 JSX 文件

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

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

您可以使用 window 对象将数据从 blade 共享到 js:

<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 变量。相反,您可以将访问 window 包装到一些辅助方法中:

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

然后在 jsx 中:

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