Я изучаю React и хочу создать приложение с Symfony4 в качестве моего интерфейса и интерфейса React.Я застрял сейчас, когда мне нужно передать какие-то данные во внешний интерфейс из моего бэкэнда.Я действительно не знаю, как правильно это сделать?Следуя некоторым урокам, я делаю это так:
Из контроллера я отправляю некоторые данные в файл ветки:
/**
* @Route("/")
*/
public function homepage()
{
$date = new DateTime();
$curr_date = $date->format('Y-m-d H:i:s');
return $this->render('base.html.twig', [
'gameDate' => $curr_date
]);
}
В файле ветки я устанавливаю его как атрибут данных
base.html.twig:
<div id="root" data-event-date="{{ gameDate }}">
Затем я могу получить переменную в виде набора данных в моем JavaScript
App.js:
const root = document.getElementById('root');
ReactDOM.render(<Homepage {...(root.dataset)}/>, root);
И рендеринг из реквизита.
Homepage.js:
class Homepage extends Component {
constructor(props) {
super(props)
this.state = {
prizePool: '',
gameDate: '',
numberOfPlayers: ''
}
}
onParticipateClick = (event) => {
this.setState({prizePool: Math.random()})
}
render()
{
return (
<div className="mt-c-10">
<GameInfoBox gameDate={this.props.eventDate}/>
</div>
)
}
}
Это на самом деле работает, но я заинтересован в том, чтобы показать всю информацию в переменных данных, потому что каждый может ее увидеть.Что делать, если я хочу передать идентификатор пользователя или что-то секретное?Должен быть другой способ сделать это правильно?