小编M. *_*aat的帖子

在哪个嵌套级别,组件应从Flux中的Stores读取实体?

我正在重写我的应用程序以使用Flux,我在从商店检索数据时遇到问题.我有很多组件,它们很多.其中一些是大(Article),一些是小而简单(UserAvatar,UserLink).

我一直在努力应对组件层次结构中应该从Stores读取数据的地方.
我尝试了两种极端的方法,我都不喜欢这两种方法:

所有实体组件都读取自己的数据

需要来自Store的某些数据的每个组件只接收实体ID并自行检索实体.
例如,Article传递articleId,UserAvatarUserLink传递userId.

这种方法有几个明显的缺点(在代码示例下讨论).

var Article = React.createClass({
  mixins: [createStoreMixin(ArticleStore)],

  propTypes: {
    articleId: PropTypes.number.isRequired
  },

  getStateFromStores() {
    return {
      article: ArticleStore.get(this.props.articleId);
    }
  },

  render() {
    var article = this.state.article,
        userId = article.userId;

    return (
      <div>
        <UserLink userId={userId}>
          <UserAvatar userId={userId} />
        </UserLink>

        <h1>{article.title}</h1>
        <p>{article.text}</p>

        <p>Read more by <UserLink userId={userId} />.</p>
      </div>
    )
  }
});

var UserAvatar = React.createClass({
  mixins: [createStoreMixin(UserStore)],

  propTypes: { …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs reactjs-flux

88
推荐指数
2
解决办法
1万
查看次数

如何强制用户必须在iframe中滚动pdf

我在iframe中有一个pdf文件.我希望用户在提交表单之前滚动必须在pdf文件中.我正在尝试这个,

var position = $('#myIframe').contents().scrollTop();  
Run Code Online (Sandbox Code Playgroud)

但不行.请帮助我提前谢谢.

javascript jquery

16
推荐指数
3
解决办法
2790
查看次数

为什么TypeScript会为类生成IIFE?

看看这个TypeScript代码:

class Greeter {
    greet() {}
}
Run Code Online (Sandbox Code Playgroud)

它围绕构造函数和所有原型函数声明生成一个IIFE(立即调用的函数表达式),如:

var Greeter = (function () {
    function Greeter() {
    }
    Greeter.prototype.greet = function () { };
    return Greeter;
}());
Run Code Online (Sandbox Code Playgroud)

这有什么好处?当我读到IIFE时,我发现定义模块有很多用处.据我所知,Typescript不会在IIFE中生成会污染全局命名空间的任何内容.

在我看来,这个类宣言没有任何优势:

var Greeter = function () {}
Greeter.prototype.greet = function () { };
Run Code Online (Sandbox Code Playgroud)

它是什么原因?

javascript class typescript

8
推荐指数
2
解决办法
3715
查看次数

标签 统计

javascript ×3

class ×1

jquery ×1

reactjs ×1

reactjs-flux ×1

typescript ×1