新足迹

 找回密码
 注册

精华好帖回顾

· 宝宝趣事--我有隐私了 (2007-9-28) tyxzh · 女儿上学第一年小结(多图)。以及我对学校排名、精英中学的粗浅看法。。。 (2013-12-12) 海边小妹
· 我家的猫(第二只喵进门了) (2017-11-15) 路天涯 · 开帖记录在澳洲与肾衰竭抗争的全过程,4月21日更新:启用远程问诊。 (2015-10-17) royalpark55
Advertisement
Advertisement
查看: 1788|回复: 4

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

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

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

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

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

我用上面的代码来替换啦

发表于 2019-6-20 18: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
返回顶部