Я только что прочитал некоторые учебники о reactjs, и я нашел это решение.
Для повторного использования и для выделения логики «зависания» вы можете создать компонент, который заменит ваш обычный тег.
Что-то вроде этого:
var React = require('react');
var classNames = require('classnames');
var HoverHandlers = require('./HoverHandlers.jsx');
var ElementHover = React.createClass({
mixins: [HoverHandlers],
getInitialState: function() {
return { hover: false };
},
render: function() {
var hoverClass = this.state.hover ? this.props.hoverClass : '';
var allClass = classNames(this.props.initialClasses, hoverClass);
return (
<this.props.tagName
className={allClass}
onMouseOver={this.mouseOver}
onMouseOut={this.mouseOut}>
{this.props.children}
</this.props.tagName>
);
}
});
module.exports = ElementHover;
The HoverHandlers Mixin является как (вы также можете добавить обработчик для: активный: фокуса, и т.д ...):
var React = require('react');
var HoverHandlers = {
mouseOver: function (e) {
this.setState({ hover: true });
},
mouseOut: function (e) {
this.setState({ hover: false });
},
};
module.exports = HoverHandlers;
Затем вы можете используйте этот компонент:
<ElementHover tagName="button" hoverClass="hover" initialClasses="btn btn-default" >
Label or content of the button
</ElementHover>
Код mig ht необходимо оптимизировать. Поэтому большое спасибо, что кто-нибудь может мне помочь в этом.
Мне действительно кажется, что вы не хотите создавать другую кнопку .. вы, вероятно, просто хотите изменить стиль/поведение текущей кнопки –
извините, это мой текущий код: –
Мне нужно знать, как использование функции onMouseEnter –