Reactjs 我可以在react中呈现有状态组件的一部分吗?
是否有api允许我们编写如下代码:Reactjs 我可以在react中呈现有状态组件的一部分吗?,reactjs,Reactjs,是否有api允许我们编写如下代码: const MyComponents = () => { const [number, setNumber] = useState(0); return { Btn: <Button onPress={() => setNumber(number + 1)}> {number} </Button>, Log: <p>{num
const MyComponents = () => {
const [number, setNumber] = useState(0);
return {
Btn: <Button onPress={() => setNumber(number + 1)}>
{number}
</Button>,
Log: <p>{number}</p>
}
}
const Perent = () => <>
<div ...>
<MyComponents.Btn/>
...
...
</div>
<MyComponents.Log/>
</>
const MyComponents=()=>{
const[number,setNumber]=useState(0);
返回{
Btn:setNumber(数字+1)}>
{number}
,
日志:{number}
}
}
常数Perent=()=>
...
...
某种将某些组件分组并在不同位置渲染的能力…使用上下文似乎可以更好地实现这一点 例如
const{createContext,useState,useContext}=React;
const CountContext=createContext();
const CountContainer=({children})=>{
const[number,setNumber]=useState(0);
返回
{儿童}
};
const CountButton=()=>{
const{number,setNumber}=useContext(CountContext);
返回setNumber((c)=>c+1)}>
{number}
;
};
常量CountLog=()=>{
const{number}=useContext(CountContext);
返回{number};
};
常量SomeCountButtons=()=>;
常量应用=()=>(
);
ReactDOM.render(,document.getElementById('app'))代码>
似乎使用上下文可以更好地实现这一点
例如
const{createContext,useState,useContext}=React;
const CountContext=createContext();
const CountContainer=({children})=>{
const[number,setNumber]=useState(0);
返回
{儿童}
};
const CountButton=()=>{
const{number,setNumber}=useContext(CountContext);
返回setNumber((c)=>c+1)}>
{number}
;
};
常量CountLog=()=>{
const{number}=useContext(CountContext);
返回{number};
};
常量SomeCountButtons=()=>;
常量应用=()=>(
);
ReactDOM.render(,document.getElementById('app'))代码>
您可以使用上下文共享状态并创建两个单独的组件EAH,为什么要这样做?@Syder,因为这是一个逻辑…:-)您可以使用上下文共享状态并创建两个单独的组件EAH,为什么要这样做?@Syder,因为这是一个逻辑…:-)CountContainer
是父组件,不是吗?所以每次我们更新父组件时,对吗?不是很贵吗?@Stone不一定。React仍应仅渲染需要重新渲染的子树。你可以从中看到。MyComponent嵌套在CountContainer
中,但无论单击多少次按钮,它都只呈现一次。感谢提供信息和示例…CountContainer
是父组件,不是吗?所以每次我们更新父组件时,对吗?不是很贵吗?@Stone不一定。React仍应仅渲染需要重新渲染的子树。你可以从中看到。MyComponent嵌套在CountContainer
中,但无论单击多少次按钮,它都只渲染一次。感谢提供信息和示例。。。