我有一个用Typescript 2.0.6 + JSX(TSX)编写的React组件,需要使用LinkedStateMixin。如何在我的班级定义中包含mixin?我没有成功搜索官方文档。有没有办法在我的组件类中包含mixin?
注意:我正在使用ReactJS v0.14.6
答案 0 :(得分:1)
我不知道你是否了解mixins当前状态...所以: https://facebook.github.io/react/blog/2016/07/13/mixins-considered-harmful.html
考虑更新到React v15.4.0并使用高阶组件。
你已被警告
顺便说一句,如果你真的需要它。安装这个mixin:npm install react-addons-linked-state-mixin
并做这样的事情来完成你想要的东西:
// choose one way :P
import LinkedStateMixin from 'react-addons-linked-state-mixin' // ES6
var LinkedStateMixin = require('react-addons-linked-state-mixin') // ES5 with npm
var LinkedStateMixin = React.addons.LinkedStateMixin; // ES5 with react-with-addons.js
var WithLink = React.createClass({
mixins: [LinkedStateMixin],
getInitialState: function() {
return {message: 'Hello!'};
},
render: function() {
return <input type="text" valueLink={this.linkState('message')} />;
}
});
https://facebook.github.io/react/docs/two-way-binding-helpers.html#linkedstatemixin-before-and-after
答案 1 :(得分:0)
不幸的是,React已正式摆脱mixin模式:https://facebook.github.io/react/blog/2016/07/13/mixins-considered-harmful.html。如果您不使用ES6样式的反应组件,您仍然可以使用它们。但是,如果您确实需要它,可以使用此库:https://github.com/brigand/react-mixin