define('chart', ['l/graph'], function (Graph) {
...
return React.createClass({
displayName: 'Chart',
render: function() {
...
}
});
});
Данный код создаёт React компонент Chart. Подскажите как можно было бы переопределить метод render этого компонента при помощи JS?
P.S.: В JS не разбираюсь, прошу помочь.
Предположим, что имеется такой класс:
const Chart = React.createClass({
displayName: 'Chart',
render: function() {
return (<div>Old render!</div>);
}
});
Можно подменить функцию рендеринга через прототипирование, вот так:
Chart.type.prototype.render = function() {
return <div>New render!</div>;
};
Пытаться подменить метод рендеринга для компонента считается злым хаком и не считается бэст практис. Полный пример кода:
import React from "react";
const Chart = React.createClass({
displayName: "Chart",
render: function() {
return <div>Old render!</div>;
}
});
Chart.type.prototype.render = function() {
return <div>New render!</div>;
};
React.render(<Chart />, document.getElementById("app"));
В результате будет выведено:
New render!
Создание компонентов через createClass считается устаревшим подходом. Советую смотреть в сторону новой версии React.
Продвижение своими сайтами как стратегия роста и независимости