Skip to content
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
reload multiple elements of same component
  • Loading branch information
EdmondChuiHW authored Apr 29, 2020
commit 01eb0f05857c440e64dc4d55eddd791d11d2c1cf
15 changes: 14 additions & 1 deletion react_ujs/src/renderComponent/withHotReload.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,11 @@ module.exports = function(webpackRequireContext) {
var FreshConstructor = ReactRailsUJS.getConstructor(className);
var FreshComponent = React.createElement(FreshConstructor, props);

ReactDOM[renderFunctionName](React.createElement(AppContainer, null, FreshComponent), node);
var nodes = findAllReactNodes(className);
for (var i = 0; i < nodes.length; ++i) {
var reactNode = nodes[i];
ReactDOM[renderFunctionName](React.createElement(AppContainer, null, FreshComponent), reactNode);
}
});

ReactDOM[renderFunctionName](React.createElement(AppContainer, null, component), node);
Expand All @@ -34,3 +38,12 @@ function getFileNameFromClassName(className) {

return filename;
}

function findAllReactNodes(className) {
var selector = '[' + ReactRailsUJS.CLASS_NAME_ATTR + '="' + className + '"]';
if (ReactRailsUJS.jQuery) {
return ReactRailsUJS.jQuery(selector, document);
} else {
return parent.querySelectorAll(selector);
}
}