Him*_*aaS 3 reactjs react-native material-ui
我正在创建一个材质 UI 树视图组件。这里我的树有很少的树项目作为子项。我的目标是我能够更新孩子们的名字。所以我尝试使用树项目标签内的文本字段组件。但它不起作用。谁能帮助我如何重命名它的孩子?换句话说,我需要一个可编辑的树。
在这里我使用了 Textfied,如下所示。
const item = <TextField
name="Application"
label="Application" readOnly={false}></TextField>;
<TreeItem nodeId="2" label={item} />
Run Code Online (Sandbox Code Playgroud)
我的代码:
import React from 'react';
import { makeStyles } from '@material-ui/core/styles';
import TreeView from '@material-ui/lab/TreeView';
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
import TreeItem from '@material-ui/lab/TreeItem';
import TextField from "@material-ui/core/TextField";
const useStyles = makeStyles({
root: {
height: 216,
},
});
export default function FileSystemNavigator() {
const classes = useStyles();
const item = <TextField
name="Application"
label="Application" readOnly={false}></TextField>;
return (
<TreeView
className={classes.root}
defaultCollapseIcon={<ExpandMoreIcon />}
defaultExpandIcon={<ChevronRightIcon />}
defaultExpanded={["1"]}
>
<TreeItem nodeId="1" label="Application">
<TreeItem nodeId="2" label={item} />
<TreeItem nodeId="3" label="Chrome" />
<TreeItem nodeId="4" label="Webstorm" />
</TreeItem>
<TreeItem nodeId="5" label="Documents">
<TreeItem nodeId="6" label="Material-UI">
<TreeItem nodeId="7" label="src">
<TreeItem nodeId="8" label="index.js" />
<TreeItem nodeId="9" label="tree-view.js" />
</TreeItem>
</TreeItem>
</TreeItem>
</TreeView>
);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
你的代码看起来没问题。究竟是什么“不起作用”?
这是一个codesandbox: https://codesandbox.io/s/tree-with-textfield-sde8y
这是我的代码,以防我稍后删除该沙箱:
import React from "react";
import { makeStyles } from "@material-ui/core/styles";
import TreeView from "@material-ui/lab/TreeView";
import ExpandMoreIcon from "@material-ui/icons/ExpandMore";
import ChevronRightIcon from "@material-ui/icons/ChevronRight";
import TreeItem from "@material-ui/lab/TreeItem";
import TextField from "@material-ui/core/TextField";
const useStyles = makeStyles({
root: {
height: 216,
flexGrow: 1,
maxWidth: 400
},
inputInput: {
padding: "4px 8px"
}
});
export default function FileSystemNavigator() {
const classes = useStyles();
const [value, setValue] = React.useState("Custom item");
const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {
setValue(event.target.value);
};
return (
<TreeView
className={classes.root}
defaultCollapseIcon={<ExpandMoreIcon />}
defaultExpandIcon={<ChevronRightIcon />}
>
<TreeItem nodeId="1" label="Applications">
<TreeItem
nodeId="2"
label={
<TextField
value={value}
variant="outlined"
InputProps={{ classes: { input: classes.inputInput } }}
onChange={handleChange}
/>
}
/>
<TreeItem nodeId="3" label="Chrome" />
<TreeItem nodeId="4" label="Webstorm" />
</TreeItem>
<TreeItem nodeId="5" label="Documents">
<TreeItem nodeId="6" label="Material-UI">
<TreeItem nodeId="7" label="src">
<TreeItem nodeId="8" label="index.js" />
<TreeItem nodeId="9" label="tree-view.js" />
</TreeItem>
</TreeItem>
</TreeItem>
</TreeView>
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2980 次 |
| 最近记录: |