From d3583c62ef86d9ba93fbf195dbf329b73d5f4367 Mon Sep 17 00:00:00 2001 From: philippe Date: Tue, 22 Nov 2022 10:56:54 -0500 Subject: [PATCH 1/6] Add key to wrapped children props if no id. --- dash/dash-renderer/src/TreeContainer.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/dash/dash-renderer/src/TreeContainer.js b/dash/dash-renderer/src/TreeContainer.js index 04864c9db3..d7f40a733d 100644 --- a/dash/dash-renderer/src/TreeContainer.js +++ b/dash/dash-renderer/src/TreeContainer.js @@ -100,15 +100,16 @@ class BaseTreeContainer extends Component { this.setProps = this.setProps.bind(this); } - createContainer(props, component, path) { + createContainer(props, component, path, key = undefined) { return isSimpleComponent(component) ? ( component ) : ( Date: Tue, 22 Nov 2022 10:58:12 -0500 Subject: [PATCH 2/6] Give name to memo TreeContainer --- dash/dash-renderer/src/TreeContainer.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dash/dash-renderer/src/TreeContainer.js b/dash/dash-renderer/src/TreeContainer.js index d7f40a733d..efed04d086 100644 --- a/dash/dash-renderer/src/TreeContainer.js +++ b/dash/dash-renderer/src/TreeContainer.js @@ -81,7 +81,7 @@ function isDryComponent(obj) { ); } -const TreeContainer = memo(props => ( +const DashWrapper = props => ( {context => ( ( /> )} -)); +); + +const TreeContainer = memo(DashWrapper); class BaseTreeContainer extends Component { constructor(props) { From 650e4af0adba167790e68eb3a396787d6e4c0e66 Mon Sep 17 00:00:00 2001 From: philippe Date: Tue, 22 Nov 2022 11:01:37 -0500 Subject: [PATCH 3/6] Refactor Context Consumer to useContext. --- dash/dash-renderer/src/TreeContainer.js | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/dash/dash-renderer/src/TreeContainer.js b/dash/dash-renderer/src/TreeContainer.js index efed04d086..47fb8ee0da 100644 --- a/dash/dash-renderer/src/TreeContainer.js +++ b/dash/dash-renderer/src/TreeContainer.js @@ -1,4 +1,4 @@ -import React, {Component, memo} from 'react'; +import React, {Component, memo, useContext} from 'react'; import PropTypes from 'prop-types'; import Registry from './registry'; import {propTypeErrorHandler} from './exceptions'; @@ -81,17 +81,16 @@ function isDryComponent(obj) { ); } -const DashWrapper = props => ( - - {context => ( - - )} - -); +const DashWrapper = props => { + const context = useContext(DashContext); + return ( + + ); +}; const TreeContainer = memo(DashWrapper); From 873b3c28407be6694115ee64f139b5f692fd83d4 Mon Sep 17 00:00:00 2001 From: philippe Date: Tue, 22 Nov 2022 11:24:06 -0500 Subject: [PATCH 4/6] Update changelog. --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6c07c9a16..0b4d601c0f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ All notable changes to `dash` will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org/). +## [UNRELEASED] + +### Fixed + +- [#2332](https://github.com/plotly/dash/pull/2332) Add key to wrapped children props in list. + ## [2.7.0] - 2022-11-03 ### Removed From f359ae631689116b79473bd52608ecdee65c437f Mon Sep 17 00:00:00 2001 From: philippe Date: Mon, 5 Dec 2022 10:09:19 -0500 Subject: [PATCH 5/6] noise From cf987d164902ad8b3b951a281fa1e711a1af6e00 Mon Sep 17 00:00:00 2001 From: philippe Date: Mon, 5 Dec 2022 10:37:17 -0500 Subject: [PATCH 6/6] noise