OnFocus и onBlur не реагируют на реакцию
У меня есть следующий код
<ElementsBasket name='nextActionDate'
data={this.props.newLead.get('actions').get('nextActionDate')}>
<div className="form-group">
<span className="glyphicon glyphicon-calendar">Calendar </span>
<span className="glyphicon glyphicon-triangle-bottom" ></span>
<input type="text" className="form-control" onFocus={this.type='date'} onBlur={this.type='text'}
placeholder="Enter your date here."
value={this.props.newLead.get('actions').get('nextActionDate')}
onChange={onFieldChanged.bind(this, 'actions.nextActionDate')}
/>
</div>
</ElementsBasket>
Во входном теге, я пытаюсь, чтобы текст заполнителя появлялся в поле ввода по умолчанию, и при нажатии меня хотел бы, чтобы тип был изменен как дата. И проблема, похоже, заключается в том, чтобы щелкнуть элемент контроля на хроме. Он не будет показывать onFocus и onBlur.
Ps: Даже у onClick, похоже, такая же проблема
Ответы
Ответ 1
Это то, что вы ищете?
http://codepen.io/comakai/pen/WvzRKp?editors=001
var Foo = React.createClass({
getInitialState: function () {
return {
type: 'text'
};
},
onFocus: function () {
this.setState({
type: 'date'
});
},
onBlur: function () {
this.setState({
type: 'text'
});
},
render: function () {
return(
<input
type={ this.state.type }
onFocus={ this.onFocus }
onBlur={ this.onBlur }
placeholder="Enter your date here."
/>
)
}
});
React.render(<Foo/>, document.body);
Как я уже отмечал выше, метод рендеринга запускается впервые и после этого при каждом изменении состояния (и если shouldComponentRender возвращает true в случае его реализации):
https://facebook.github.io/react/docs/component-specs.html