Not working under `Next.js`
還沒有人認領這個 Issue。
評估
研究方向
先在 Next.js 專案中重現提供的範例,並在瀏覽器中執行頁面,檢查樹狀結構的互動。完成的標準是樹狀結構能正確呈現,並回應展開、選取、勾選、編輯、刪除和捲動互動。
由索引模型根據 Issue 內容生成。
描述
Paste the example into a Next.js project, and run this page in the browser, it could render the tree correctly but no interactions at all.
/* eslint-disable no-alert, no-console, react/no-find-dom-node */
import React from 'react';
import '../../assets/index.less';
import './basic.less';
import Tree, { TreeNode } from 'rc-tree';
const treeData = [
{
key: '0-0',
title: 'parent 1',
children: [
{ key: '0-0-0', title: 'parent 1-1', children: [{ key: '0-0-0-0', title: 'parent 1-1-0' }] },
{
key: '0-0-1',
title: 'parent 1-2',
children: [
{ key: '0-0-1-0', title: 'parent 1-2-0', disableCheckbox: true },
{ key: '0-0-1-1', title: 'parent 1-2-1' },
{ key: '0-0-1-2', title: 'parent 1-2-2' },
{ key: '0-0-1-3', title: 'parent 1-2-3' },
{ key: '0-0-1-4', title: 'parent 1-2-4' },
{ key: '0-0-1-5', title: 'parent 1-2-5' },
{ key: '0-0-1-6', title: 'parent 1-2-6' },
{ key: '0-0-1-7', title: 'parent 1-2-7' },
{ key: '0-0-1-8', title: 'parent 1-2-8' },
{ key: '0-0-1-9', title: 'parent 1-2-9' },
{ key: 1128, title: 1128 },
],
},
],
},
];
class Demo extends React.Component {
static defaultProps = {
keys: ['0-0-0-0'],
};
constructor(props) {
super(props);
const { keys } = props;
this.state = {
defaultExpandedKeys: keys,
defaultSelectedKeys: keys,
defaultCheckedKeys: keys,
};
this.treeRef = React.createRef();
}
onExpand = expandedKeys => {
console.log('onExpand', expandedKeys);
};
onSelect = (selectedKeys, info) => {
console.log('selected', selectedKeys, info);
this.selKey = info.node.props.eventKey;
};
onCheck = (checkedKeys, info) => {
console.log('onCheck', checkedKeys, info);
};
onEdit = () => {
setTimeout(() => {
console.log('current key: ', this.selKey);
}, 0);
};
onDel = e => {
if (!window.confirm('sure to delete?')) {
return;
}
e.stopPropagation();
};
setTreeRef = tree => {
this.tree = tree;
};
render() {
const customLabel = (
<span className="cus-label">
<span>operations: </span>
<span style={{ color: 'blue' }} onClick={this.onEdit}>
Edit
</span>
<label onClick={e => e.stopPropagation()}>
<input type="checkbox" /> checked
</label>
<span style={{ color: '#EB0000' }} onClick={this.onDel}>
Delete
</span>
</span>
);
return (
<div style={{ margin: '0 20px' }}>
<h2>simple</h2>
<input aria-label="good" />
<Tree
ref={this.setTreeRef}
className="myCls"
showLine
checkable
defaultExpandAll
defaultExpandedKeys={this.state.defaultExpandedKeys}
onExpand={this.onExpand}
defaultSelectedKeys={this.state.defaultSelectedKeys}
defaultCheckedKeys={this.state.defaultCheckedKeys}
onSelect={this.onSelect}
onCheck={this.onCheck}
onActiveChange={key => console.log('Active:', key)}
>
<TreeNode title="parent 1" key="0-0">
<TreeNode title={customLabel} key="0-0-0">
<TreeNode title="leaf" key="0-0-0-0" style={{ background: 'rgba(255, 0, 0, 0.1)' }} />
<TreeNode title="leaf" key="0-0-0-1" />
</TreeNode>
<TreeNode title="parent 1-1" key="0-0-1">
<TreeNode title="parent 1-1-0" key="0-0-1-0" disableCheckbox />
<TreeNode title="parent 1-1-1" key="0-0-1-1" />
</TreeNode>
<TreeNode title="parent 1-2" key="0-0-2" disabled>
<TreeNode title="parent 1-2-0" key="0-0-2-0" checkable={false} />
<TreeNode title="parent 1-2-1" key="0-0-2-1" />
</TreeNode>
</TreeNode>
</Tree>
<h2>Check on Click TreeNode</h2>
<Tree
className="myCls"
showLine
checkable
selectable={false}
defaultExpandAll
onExpand={this.onExpand}
defaultSelectedKeys={this.state.defaultSelectedKeys}
defaultCheckedKeys={this.state.defaultCheckedKeys}
onSelect={this.onSelect}
onCheck={this.onCheck}
treeData={treeData}
/>
<h2>Select</h2>
<Tree
ref={this.treeRef}
className="myCls"
defaultExpandAll
treeData={treeData}
onSelect={this.onSelect}
height={150}
/>
<button
type="button"
onClick={() => {
setTimeout(() => {
console.log('scroll!!!');
this.treeRef.current.scrollTo({ key: '0-0-1-9' });
}, 100);
}}
>
Scroll Last
</button>
</div>
);
}
}
export default Demo;
- 主要語言
- TypeScript
- 星號
- 1.3k
- 分支
- 491
- PR 合併指標
- 30 天內沒有已合併 PR
環境準備
這個專案沒有提供開發容器、Dockerfile 或貢獻指南,環境需要你自己搭建:先看它的 README,通用步驟見我們的新手貢獻指南。
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
react-component/tree 的其他 Issue
-
Tree crashes on mount with `Cannot read properties of null (reading 'scrollTo')` when a node title contains an autoFocus input可能已有人在做 @hippee-lee 於 66 天前認領。 未關閉
難度 2/5 1-3 小時 新手友好度 55/100
react-component/tree#1068 · 1 則留言 ·
-
難度 5/5 一週以上 新手友好度 20/100
react-component/tree#983 ·
-
難度 3/5 1-2 天 新手友好度 35/100
react-component/tree#937 ·
-
難度 5/5 一週以上 新手友好度 25/100
react-component/tree#935 ·
-
難度 3/5 1-2 天 新手友好度 35/100
react-component/tree#929 ·
查看 react-component/tree 的全部 Issue
相似的 Issue
-
bug help wanted
難度 2/5 1-3 小時 新手友好度 82/100
維護者通常 1 天內回覆
-
agent-task risk:low
難度 1/5 1-3 小時 新手友好度 88/100
guyellis/http-status-check#512 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 75/100
microsoft/playwright#43327 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 78/100
microsoft/TypeScript#64758 ·
維護者通常 1 天內回覆
-
enhancement
難度 2/5 1-3 小時 新手友好度 65/100
opensearch-project/OpenSearch-Dashboards#12937 ·
維護者通常 2 天內回覆