Skip to content

Commit b9c4848

Browse files
committed
fix: UI
1 parent 35d25c9 commit b9c4848

4 files changed

Lines changed: 37 additions & 28 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "dob-react-devtools",
3-
"version": "1.0.6",
3+
"version": "1.0.7",
44
"description": "",
55
"main": "built/index.js",
66
"scripts": {

src/debug-wrapper/debug-wrapper.component.tsx

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -61,19 +61,21 @@ export class DebugWrapper extends React.PureComponent<Props, State>{
6161
}
6262

6363
public componentDidMount() {
64-
// 渲染与当前组件一一对应的高亮节点
65-
this.debugContainer = document.createElement("div")
66-
this.debugContainer.style.position = 'absolute'
67-
document.querySelector('#' + debugContainerId).appendChild(this.debugContainer)
68-
ReactDOM.render(
69-
<DebugBox
70-
ref={ref => {
71-
this.debugBox = ref
72-
}}
73-
dyDebug={this.context.dyDebug}
74-
/>,
75-
this.debugContainer
76-
)
64+
// 渲染与当前组件一一对应的高亮节点,由于此时可能 debugContainer 不存在,因此 setTimeout 后执行
65+
setTimeout(() => {
66+
this.debugContainer = document.createElement("div")
67+
this.debugContainer.style.position = 'absolute'
68+
document.querySelector('#' + debugContainerId).appendChild(this.debugContainer)
69+
ReactDOM.render(
70+
<DebugBox
71+
ref={ref => {
72+
this.debugBox = ref
73+
}}
74+
dyDebug={this.context.dyDebug}
75+
/>,
76+
this.debugContainer
77+
)
78+
})
7779

7880
// TODO: 暂不处理多子元素的情况
7981
if (React.Children.count(this.props.children) > 1) {
@@ -117,6 +119,14 @@ export class DebugWrapper extends React.PureComponent<Props, State>{
117119
return
118120
}
119121

122+
// 如果 debugBox 还未实例化,下个事件循环再执行
123+
if (!this.debugBox) {
124+
setTimeout(() => {
125+
this.onReRender({ debugId })
126+
})
127+
return
128+
}
129+
120130
this.debugBox.setRealChildDOM(this.realChildDOM)
121131

122132
// 通知 debugBox 添加一个 debugId

src/tool-box/tool-box.component.tsx

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,6 @@ export class ToolBox extends React.PureComponent<Props, State>{
3333
*/
3434
private actionContainerDOM: HTMLElement = null
3535

36-
componentWillMount() {
37-
// 在 body 下创建一个放置 debug-box 的节点
38-
const debugContainer = document.createElement("div")
39-
debugContainer.id = debugContainerId
40-
debugContainer.style.position = 'absolute'
41-
debugContainer.style.top = '0px'
42-
debugContainer.style.right = '0px'
43-
debugContainer.style.bottom = '0px'
44-
debugContainer.style.left = '0px'
45-
debugContainer.style.pointerEvents = 'none'
46-
document.querySelector('body').appendChild(debugContainer)
47-
}
48-
4936
getChildContext() {
5037
return {
5138
dyDebug: this.context.dyDebug
@@ -61,6 +48,18 @@ export class ToolBox extends React.PureComponent<Props, State>{
6148
})
6249

6350
this.context.dyDebug.event.on('focusActionDetail', this.handleFocusActionDetail)
51+
52+
// 在 body 下创建一个放置 debug-box 的节点
53+
const debugContainer = document.createElement("div")
54+
debugContainer.id = debugContainerId
55+
debugContainer.style.position = 'fixed'
56+
debugContainer.style.top = '0px'
57+
debugContainer.style.right = '0px'
58+
debugContainer.style.bottom = '0px'
59+
debugContainer.style.left = '0px'
60+
debugContainer.style.pointerEvents = 'none'
61+
debugContainer.style.overflow = 'hidden'
62+
ReactDOM.findDOMNode(this).appendChild(debugContainer)
6463
}
6564

6665
public componentWillUnmount() {

src/tool-box/tool-box.style.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import styled, { keyframes } from 'styled-components'
22

33
export const Container = styled.div`
4-
display: flex;
4+
display: flex;
55
`
66

77
export const ChildrenContainer = styled.div`

0 commit comments

Comments
 (0)