Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 我可以在react中呈现有状态组件的一部分吗?_Reactjs - Fatal编程技术网

Reactjs 我可以在react中呈现有状态组件的一部分吗?

Reactjs 我可以在react中呈现有状态组件的一部分吗?,reactjs,Reactjs,是否有api允许我们编写如下代码: const MyComponents = () => { const [number, setNumber] = useState(0); return { Btn: <Button onPress={() => setNumber(number + 1)}> {number} </Button>, Log: <p>{num

是否有api允许我们编写如下代码:

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
中,但无论单击多少次按钮,它都只渲染一次。感谢提供信息和示例。。。