From 219f81da559820706e0bbbc0728f52cf92eac78a Mon Sep 17 00:00:00 2001 From: tianya <8445295+llgoer@user.noreply.gitee.com> Date: Fri, 29 Apr 2022 00:34:09 +0800 Subject: [PATCH] Update App.js --- knmanage/src/App.js | 124 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 108 insertions(+), 16 deletions(-) diff --git a/knmanage/src/App.js b/knmanage/src/App.js index 825f214..ca9e979 100644 --- a/knmanage/src/App.js +++ b/knmanage/src/App.js @@ -1,31 +1,123 @@ import logo from './logo.svg'; import './App.css'; import init, { greet } from "knmodel"; -import React, { useEffect } from 'react'; +import React, { useEffect, useState, useMemo } from 'react'; + + +var d = { + field: '就诊卡号11', + required: 1, + chiled: [ + { + field: '测试规则22', + required: 1, + chiled: [ + { + field: '就诊卡号33', + required: 1, + chiled: [ + { + field: '测试规则44', + required: 1, + chiled: [ + { + field: '就诊卡号', + required: 1, + chiled: [ + { + field: '测试规则', + required: 1, + chiled: [ + ] + } + ], + } + ] + } + ], + } + ] + }, + { + field: '测试规则22', + required: 1, + chiled: [ + { + field: '就诊卡号33', + required: 1, + chiled: [ + { + field: '测试规则44', + required: 1, + chiled: [ + { + field: '就诊卡号', + required: 1, + chiled: [ + { + field: '测试规则', + required: 1, + chiled: [ + + ] + } + ], + } + ] + } + ], + } + ] + } + ], +}; function App() { + + const [data, setData] = useState(d); + useEffect(() => { init().then(() => { - greet("Hello Tianya"); + // greet("Hello Tianya"); }) }, []) + function TreeNode(props) { + console.log(props); + const [idHash, setIdHash] = useState(new Date().getTime() + Math.round(Math.random() * 10000)) + const [nodeField, setNodeField] = useState(props.data.field) + const [nodeRequired, setNodeRequired] = useState(props.data.required) + const [nodeChiled, setNodeChiled] = useState(props.data.chiled) + + // 这里只有子集变化了才更新 + const listItems = useMemo(() => { + return nodeChiled.map((item) => + + ) + }, [nodeChiled]) + + // 更新组件 + function handleOnClick() { + if (nodeRequired == 0) { + setNodeRequired(1) + } else { + setNodeRequired(0) + } + } + + return ( +
+

{nodeField}[{nodeRequired}]

+
{listItems}
+
+ ); + } + return (
-
- logo -

- Edit src/App.js and save to reload. -

- - Learn React - -
+

Node

+
+
); }