When I tried to use the task editor from the template builder, I got the error:
LogicException: Render context is empty, because render() was called outside of a renderRoot() or renderPlain() call. Use renderPlain()/renderRoot() or #lazy_builder/#pre_render instead. in Drupal\Core\Render\Renderer->doRender() (line 241 of /Users/lebster/cimpleo/projects/mediapeaks/musicpeaks/web/core/lib/Drupal/Core/Render/Renderer.php).
To prevent this issue, need to use renderer service instead of drupal_render() to prevent this issue and due to function is deprecated and will be removed before Drupal 9.0.0.
For example, this code:
//We will now render the legend
$legend = '';
$legend_render_array = [
'#theme' => 'template_task_legend',
];
$legend = drupal_render($legend_render_array);
replace with:
//We will now render the legend
$legend = '';
$legend_render_array = [
'#theme' => 'template_task_legend',
];
$legend = \Drupal::service('renderer')->renderPlain($legend_render_array);
| Comment | File | Size | Author |
|---|---|---|---|
| #2 | maestro-replace-deprecated-drupal_render-function-3025690-2.patch | 3.81 KB | ugolek |
Comments
Comment #2
ugolek commentedHere's a patch that replace the deprecated
drupal_render()with\Drupal::service('renderer')->renderPlain().Comment #4
_randy commentedThanks for the patch. Committed and needs review.
Comment #5
_randy commented