首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >双向数据绑定到ngReact组件

双向数据绑定到ngReact组件
EN

Stack Overflow用户
提问于 2015-07-09 22:48:02
回答 2查看 2.1K关注 0票数 13

使用ngReact,如何优雅地建立双向数据绑定?

假设我有一个简单的React输入组件,它接受value并触发onChange

代码语言:javascript
复制
angular.module('app', []).value('SimpleInput', props => 
  <input type='text' 
         value={props.value}
         onChange{e => props.onChange(e.target.value)} />
)

然后,从AngularJS方面来看,我希望这样的东西能够在范围内更新value

代码语言:javascript
复制
<react-component name="SimpleInput" 
                 props="{value: value, onChange: v => value = v}">
</react-component>

但是,是否有一种更优雅的方法来设置与AngularJS作用域的双向绑定,类似于ng-model

EN

回答 2

Stack Overflow用户

发布于 2015-07-15 02:09:50

我不这样认为。ngReact只是将组件注入角度框架的一种方法;React是专门设计的,没有双向数据绑定以提高性能,因此任何实现都必须是一个解决方案。

从马嘴里说:

ngReact是一个角度模块,允许在AngularJS应用程序中使用反作用组件。这样做的动机可能有以下任何一种:您需要比角可以提供更好的性能(双向数据绑定,Object.observe,页面上太多的范围观察者).

票数 6
EN

Stack Overflow用户

发布于 2015-07-15 18:45:13

我对ngReact没有多少经验,但其反应方式是使用experience,并在需要时从ref中获取值。我不知道您的组件代码是什么样子,所以我只能猜测。如果组件中有一个输入字段,请执行以下操作:

代码语言:javascript
复制
var SimpleInput = React.createClass({

accessFunc: function(){
    //Access value from ref here.
    console.log(React.findDOMNode(this.refs.myInput).value);
},

render: function(){
    return (
        <input type="text" ref="myInput" />
    )
  }
})

但是,还可以使用linkState:https://facebook.github.io/react/docs/two-way-binding-helpers.html将值绑定到状态变量。

然而,我强烈建议使用第一种方式,因为反应比角度快得多,因为它避免了双向绑定。不过,以下是如何:

代码语言:javascript
复制
var SimpleInput = React.createClass({

getInitialState: function(){
    return {
        myInput: ''
    }
},

render: function(){
    return (
        <input type="text" valueLink={this.linkState('myInput')}/>
    )
  }
})

现在,无论何时访问this.state.myInput,都会得到输入框的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31329592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档