Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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
Javascript 反应:从视图中分离状态和功能,但道具太多,无法传递_Javascript_Reactjs - Fatal编程技术网

Javascript 反应:从视图中分离状态和功能,但道具太多,无法传递

Javascript 反应:从视图中分离状态和功能,但道具太多,无法传递,javascript,reactjs,Javascript,Reactjs,我正在尝试一种将状态定义和函数与组件分离的新样式 e、 g //Comp.js const Comp=(道具)=>{ 常量{state1,setState1,func}=props; ... 返回。。。; } //CompContainer.js 从“/Comp”导入Comp const CompContainer=(道具)=>{ const[state1,setState1]=useState(null); 常量func=(arg)=>{ ... } 返回 } 矛盾的是,对于状态和功能非常少

我正在尝试一种将状态定义和函数与组件分离的新样式

e、 g

//Comp.js
const Comp=(道具)=>{
常量{state1,setState1,func}=props;
...
返回。。。;
}
//CompContainer.js
从“/Comp”导入Comp
const CompContainer=(道具)=>{
const[state1,setState1]=useState(null);
常量func=(arg)=>{
...
}
返回
}
矛盾的是,对于状态和功能非常少的小组件,使用这种样式非常有效。逻辑清晰,单个文件变得小且易于读取;但我的目的是将大型组件的逻辑和视图分开

然而,对于大型组件,有许多道具、状态和功能

我必须向视图传递一长串道具,并且(尽管是可选的)定义一长串
propTypes
,并销毁一长串


有没有什么神奇的方法可以缩短这个道具列表,让生活更轻松?

您最好使用或修改共享对象之类的东西

否则,您可以在报税表中将家长的所有道具传递给孩子,但绝对不推荐

<Comp {...props} />


感谢您的回复!我正在使用react上下文和graphql客户端进行状态管理。问题不是关于项目的状态管理,而是关于单个组件。我相信您的目标是将逻辑从视图中分离出来-这将驱动那些道具、状态和功能进入react上下文,从而使您的组件更“纯组件”。您可能还对