Имеется такой простой (лишнее специально вырезал) компонент:
import React, { Component } from 'react';
class QueryParamSelect extends Component {
render() {
return (
<div>
{JSON.stringify(this.props)}
</div>
)
}
}
export default QueryParamSelect;
Вывожу его в шаблон back-end фреймворка следующим образом:
%QueryParamSelect{ label: 'Label', options: @options, param: 'rts' }
Что в итоге эквивалентно этому:
<queryparamselect label="Label" options="[["all", "All"], ["first", "First"], ["second", "Second"]]" param="rts"></queryparamselect>
Ну и чтобы все это дело заработало использую это:
document.addEventListener('DOMContentLoaded', () => {
if (document.getElementById('query-param-select')) {
ReactDOM.render(
<QueryParamSelect/>,
document.getElementById('query-param-select')
)
}
})
В итоге я получаю {}
от this.props
.
Глядя на официальную документацию (https://reactjs.org/docs/components-and-props.html) я не совсем понимаю в чем проблема. Можете, пожалуйста, объяснить где и что я сделал не так?
Весь код я привел к такому виду и все заработало.
На стороне back-end фреймворка:
#query-param-select{ 'data-label': 'Label', 'data-options': @options, 'data-param': 'rts' }
В JS:
const qps = document.getElementById('query-param-select')
ReactDOM.render(<QueryParamSelect label={qps.dataset.label} options={qps.dataset.options} param={qps.dataset.param} />, qps)
В React компоненте ничего не трогал.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Есть ли способы управлять анимацией анимированного GIF посредством JavaScript? Если есть способы, то как это можно сделать?
задача простыми словами: Есть пустой массивЕсть инпут и кнопка