新足迹

 找回密码
 注册

精华好帖回顾

· 分享在美国的工作和生活,给有意来美的你们(2019旅程结束,回澳了:) (2014-12-18) 谙旎 · 日本五月初自由散漫三礼拜 东京 河口湖 京都 北海道 (2018-5-6) toc110
· TIGUAN 项目竣工了 2012年继续更新 V4.1地图上路.. 第8页 (2011-3-23) morningsun · 辣S人不偿命的自制辣翻天蒜蓉辣椒酱 (2010-3-18) bluesummer
Advertisement
Advertisement
查看: 1789|回复: 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
返回顶部