新足迹

 找回密码
 注册

精华好帖回顾

· 俺的奥运Preview 3 (2008-8-11) joaquin · 误人子弟两三年之六 (2008-3-28) astina
· GLC250D 1000公里短评测 (2016-1-4) rick_li · Alfa Romeo 4C 提车作业 (2016-8-11) jimmy9046
Advertisement
Advertisement
查看: 1542|回复: 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
返回顶部