Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.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 render(){ 常数{ 加载, 错误, 项目 }=本州; 返回( { 装载&& } { 错误&& } 等 或 const ItemList=({items,loading,error})=>{ 如果(装载){ 返回 } 等 欢迎/感谢所有意见。 谢谢!我认为我们应该制作尽可能多的组件。它使代码更清晰,组件更实用 在您的情况下,逻辑应该在基本组件中。我认为,您的组件应该只对

当出现渲染错误、加载或空状态时,最佳做法是什么

是让容器控制渲染更好,还是让它本质上引用的组件控制渲染更好

e、 g

render(){
常数{
加载,
错误,
项目
}=本州;
返回(
{
装载&&
}
{
错误&&
}
等

const ItemList=({items,loading,error})=>{
如果(装载){
返回
}
等
欢迎/感谢所有意见。
谢谢!

我认为我们应该制作尽可能多的组件。它使代码更清晰,组件更实用

在您的情况下,逻辑应该在基本组件中。我认为,您的组件应该只对自己的视图负责。并且它不应该知道应该显示它的逻辑。

根据文档,两者都很好,都是“正式正确的”


但是,在您的示例中,我个人认为您的第二个示例更具可读性。首先,您负责特殊情况(错误和加载),然后是“快乐之路”。它既快又容易阅读!

我完全忘记了这个页面,尽管我以前访问过它-因此这非常有用。谢谢!
render() {
    const {
       loading,
       error,
       items 
    } = this.state;

    return (
       <div>
          {
             loading &&
             <Loading />
          }
          {
             error &&
             <Error />
          }
          etc...
const ItemList = ({ items, loading, error }) => {
    if (loading) {
       return <Loading />
    }
    etc...