新足迹

 找回密码
 注册

精华好帖回顾

· 买房经验谈:挑房(拍砖的话,下手轻点儿!给分的话,下手重点儿!) (2009-9-8) Gelen · 【136mydream】自驾房车环游澳洲一年 (2008-10-18) 136mydream
· 衣衣,鞋鞋照片!!! (2005-5-14) 短腿小鳄鱼 · 猎梦人谈抄底 (2008-11-26) 猎梦人
Advertisement
Advertisement
查看: 1822|回复: 4

[IT] react mobx有没有更简单的写法 [复制链接]

发表于 2019-6-16 11:13 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我感觉我写的下面的代码太复杂了

import React from 'react';
import ArticleList from "./ArticleList";
import ListErrors from "./ListErrors";
import { inject, observer } from "mobx-react";

const ArticleListContainer = inject('store')(observer(
    class ArticleListContainer extends React.Component {
        componentDidMount() {
            this.props.store.getArticleList();
        }

        render() {
            return (
                <div className="ArticleListContainer">
                    <ListErrors errors={this.props.store.errors}/>
                    <ArticleList />
                </div>
            )
        }
    }
));

export default ArticleListContainer;

有没有可能不用React.Component,直接用function?
Advertisement
Advertisement

发表于 2019-6-18 22:05 |显示全部楼层
此文章由 kevinliang1976 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kevinliang1976 所有!转贴必须注明作者、出处和本声明,并保持内容完整
个人喜好用 redux duck

发表于 2019-6-19 00:10 |显示全部楼层
此文章由 mzbac 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 mzbac 所有!转贴必须注明作者、出处和本声明,并保持内容完整
componentDidMount  都要取消了 还在用呢

发表于 2019-6-20 09:10 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
mzbac 发表于 2019-6-18 23:10
componentDidMount  都要取消了 还在用呢

const store = useContext(appStore);
useEffect(() => {
        store.getArticleList()
    }, []);

我用上面的代码来替换啦

发表于 2019-6-20 19:47 |显示全部楼层
此文章由 DDD888 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 DDD888 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 DDD888 于 2019-6-20 18:53 编辑

这是完整代码

import React, { useContext, useEffect } from 'react';
import ArticleList from "./ArticleList";
import ListErrors from "./ListErrors";
import { observer } from 'mobx-react-lite';
import appStore from '../stores/Store';

const ArticleListContainer = () => {
    const store = useContext(appStore)

    useEffect(() => {
        store.getArticleList()
    })

    return (
        <div className="ArticleListContainer">
            <ListErrors errors={store.errors}/>
            <ArticleList />
        </div>
    )
}

export default observer(ArticleListContainer)

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部