如何根据 React 中常量的 属性 有条件地渲染组件?
How to conditionally render a component from the property of a constant in React?
我想根据常量的 header 属性 有条件地渲染一个组件。
基本上如果 header 是 Woffy --> Render Component1
这是我的代码:
import React from 'react';
import Component1 from '../Collection/Component1';
import Component2 from '../Collection/Component2';
const pets = [
{
header: 'Woffy',
image: '/img/dog.png'
},
{
header: 'kitty',
image: '/img/cat.png'
},
class demo class extends React.Component{
render(){
return(
<div>
{header === "Woofy" && <Component1 />}
{header === "kitty" && <Component2 />}
</div>
)
}
}
Well I have a react dropdown component <Dropdown/>
from Fluent UI, I want to display the component based in the dropdown selection, wich I want to asign from the header property. is that possible ? This is my dropdown <Dropdown items={pets} placeholder="Zoo world" />
您可以使用您作为下拉状态value
的变量,然后比较变量来渲染组件。
import React from "react";
import { Dropdown } from "@fluentui/react-northstar";
const pets = [
{
key: "1",
header: "Woffy",
image: "/img/dog.png"
},
{
key: "2",
header: "kitty",
image: "/img/cat.png"
}
];
const DropdownExample = () => {
const [dropdownValue, setDropdownValue] = React.useState("3");
console.log(dropdownValue);
return (
<Dropdown
items={pets}
value={dropdownValue}
onChange={(_, data) => setDropdownValue(data.value.header)}
/>
);
};
现在将此 dropdownValue
变量与渲染组件进行比较。
<div>
{dropdownValue === "Woofy" && <Component1 />}
{dropdownValue === "kitty" && <Component2 />}
</div>
您可以使用 Array.map
方法检查 header
值,然后 return 所需的输出。
<div>
{pets.map((e) => {
if (e.header === "Woffy") {
return <Component1 />;
} else if (e.header === "kitty") {
return <Component2 />;
} else {
return null;
}
})}
</div>;
我想根据常量的 header 属性 有条件地渲染一个组件。 基本上如果 header 是 Woffy --> Render Component1 这是我的代码:
import React from 'react';
import Component1 from '../Collection/Component1';
import Component2 from '../Collection/Component2';
const pets = [
{
header: 'Woffy',
image: '/img/dog.png'
},
{
header: 'kitty',
image: '/img/cat.png'
},
class demo class extends React.Component{
render(){
return(
<div>
{header === "Woofy" && <Component1 />}
{header === "kitty" && <Component2 />}
</div>
)
}
}
Well I have a react dropdown component
<Dropdown/>
from Fluent UI, I want to display the component based in the dropdown selection, wich I want to asign from the header property. is that possible ? This is my dropdown<Dropdown items={pets} placeholder="Zoo world" />
您可以使用您作为下拉状态value
的变量,然后比较变量来渲染组件。
import React from "react";
import { Dropdown } from "@fluentui/react-northstar";
const pets = [
{
key: "1",
header: "Woffy",
image: "/img/dog.png"
},
{
key: "2",
header: "kitty",
image: "/img/cat.png"
}
];
const DropdownExample = () => {
const [dropdownValue, setDropdownValue] = React.useState("3");
console.log(dropdownValue);
return (
<Dropdown
items={pets}
value={dropdownValue}
onChange={(_, data) => setDropdownValue(data.value.header)}
/>
);
};
现在将此 dropdownValue
变量与渲染组件进行比较。
<div>
{dropdownValue === "Woofy" && <Component1 />}
{dropdownValue === "kitty" && <Component2 />}
</div>
您可以使用 Array.map
方法检查 header
值,然后 return 所需的输出。
<div>
{pets.map((e) => {
if (e.header === "Woffy") {
return <Component1 />;
} else if (e.header === "kitty") {
return <Component2 />;
} else {
return null;
}
})}
</div>;