Javascript 将React组件作为对象值返回,并将道具绑定到该组件
有一个全局钩子在使用时返回react组件:Javascript 将React组件作为对象值返回,并将道具绑定到该组件,javascript,reactjs,Javascript,Reactjs,有一个全局钩子在使用时返回react组件: const{SomeComponent1,SomeComponent2}=useHook({prop1,prop2}) 如何将道具传递给从挂钩返回的组件 constusehook=({prop1,prop2})=>{ 返回{ SomeComponent1,//您可以将组件创建为功能组件,并在useHook中使用useMemo,以防止在每次渲染时重新安装组件 const useHook = ({ prop1, prop2 }) => { c
const{SomeComponent1,SomeComponent2}=useHook({prop1,prop2})
如何将道具传递给从挂钩返回的组件
constusehook=({prop1,prop2})=>{
返回{
SomeComponent1,//您可以将组件创建为功能组件,并在useHook中使用useMemo
,以防止在每次渲染时重新安装组件
const useHook = ({ prop1, prop2 }) => {
const SomeComponent1Wrap = useMemo(() => ( ) => {
return <SomeComponent1 prop={prop1} />
}, [props1]);
const SomeComponent2Wrap = useMemo(() => ( ) => {
return <SomeComponent2 prop={prop2} />
}, [props2]);
return {
SomeComponent1: SomeComponent1Wrap,
SomeComponent2: SomeComponent2Wrap,
}
}
constusehook=({prop1,prop2})=>{
const SomeComponent1Wrap=useMemo(()=>()=>{
返回
},[props1]);
const SomeComponent2Wrap=useMemo(()=>()=>{
返回
},[props2]);
返回{
SomeComponent1:SomeComponent1包装,
SomeComponent2:SomeComponent2Wrap,
}
}
您可以将组件创建为功能组件,并在useHook中使用useMemo
,以防止在每个渲染上重新安装组件
const useHook = ({ prop1, prop2 }) => {
const SomeComponent1Wrap = useMemo(() => ( ) => {
return <SomeComponent1 prop={prop1} />
}, [props1]);
const SomeComponent2Wrap = useMemo(() => ( ) => {
return <SomeComponent2 prop={prop2} />
}, [props2]);
return {
SomeComponent1: SomeComponent1Wrap,
SomeComponent2: SomeComponent2Wrap,
}
}
constusehook=({prop1,prop2})=>{
const SomeComponent1Wrap=useMemo(()=>()=>{
返回
},[props1]);
const SomeComponent2Wrap=useMemo(()=>()=>{
返回
},[props2]);
返回{
SomeComponent1:SomeComponent1包装,
SomeComponent2:SomeComponent2Wrap,
}
}
最常见、最优雅的解决方案是基于条件的渲染。您可以使用基于三值的操作符来显示组件,例如
import React,{useState} from "react";
import {Comp1} from "./comp1";
import {Comp2} from "./comp2";
function Test(){
const [display,setDisplay] = useState(true);
render(){
<>
{display ? <Comp1 props={props} /> : <Comp2 props={props} /> }
</>
}
}
import React,{useState}来自“React”;
从“/Comp1”导入{Comp1}”;
从“/Comp2”导入{Comp2};
功能测试(){
const[display,setDisplay]=使用状态(true);
render(){
{显示?:}
}
}
最常见、最优雅的解决方案是基于条件的渲染。您可以使用基于三值的操作符来显示组件,例如
import React,{useState} from "react";
import {Comp1} from "./comp1";
import {Comp2} from "./comp2";
function Test(){
const [display,setDisplay] = useState(true);
render(){
<>
{display ? <Comp1 props={props} /> : <Comp2 props={props} /> }
</>
}
}
import React,{useState}来自“React”;
从“/Comp1”导入{Comp1}”;
从“/Comp2”导入{Comp2};
功能测试(){
const[display,setDisplay]=使用状态(true);
render(){
{显示?:}
}
}
我想你误解了这个问题。这不是我的意思。我想你误解了这个问题。这不是我想要的