【发布时间】:2021-07-08 14:55:49
【问题描述】:
我现在有一个使用反应钩子的组件列表,我想单击该组件,它应该打开设置组件并显示单击的组件。
这里是代码框:live demo
这是我如何在 app.js 中显示组件列表
import * as data from "./Components/CompList";
import { useHistory } from "react-router-dom";
export default function App(props) {
let components = data.complist;
const history = useHistory();
return (
<div className="App">
{components.map(function (Component, id) {
return (
<div
className="comp-list"
key={id}
onClick={() => {
history.push(`/settings/${id}`);
}}
>
<Component />
</div>
);
})}
</div>
);
}
这是我在设置中显示它们的方式
import * as data from "./CompList";
import { useRouteMatch } from "react-router-dom";
const Settings = () => {
const match = useRouteMatch();
const { templateId } = match.params;
let templates = data.complist;
let SelecteComponent = templates.map(function (Component, idx) {
if (idx === Number(templateId)) {
return Component;
}
return Component;
});
console.log("selected", SelecteComponent);
return (
<div className="selected-component">
<SelecteComponent />
</div>
);
};
export default Settings;
不幸的是它没有在设置组件中显示被点击的组件
我需要改变什么来解决问题?
【问题讨论】:
标签: javascript reactjs react-router components jsx