新足迹

 找回密码
 注册

精华好帖回顾

· 终于找到full time工作了。谢谢足迹的帮助!及interview 回顾。 (2007-12-12) leski · 十四回目 我在信州转了个圈 (2024-6-3) joaquin
· 美味模仿牌香辣牛肉酱来人! (2008-12-16) Auburn · 煮夫手记四十七 闻香下马 葛记焖饼 (2012-5-6) amon54
Advertisement
Advertisement
查看: 1786|回复: 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
返回顶部