- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找进入react.js的方法,但无法弄清楚为什么getInitialState
被调用的次数比我预期的要多。我正在尝试编写一个组件,该组件将某些值显示为标签,并且可以通过显示输入文本以及保存或取消编辑操作的方法来切换以编辑该值。
这是组件:
var React = require('react');
var ReactPropTypes = React.PropTypes;
var ENTER_KEY_CODE = 13;
var TextInput = React.createClass({
propTypes: {
id: ReactPropTypes.string,
className: ReactPropTypes.string,
placeholder: ReactPropTypes.string,
onSave: ReactPropTypes.func.isRequired,
initialValue: ReactPropTypes.string
},
getInitialState: function() {
return {
value: this.props.initialValue,
isEditing: false
};
},
render: function() {
var inputField =
(<div>
<input
className={this.props.className}
id={this.props.id}
placeholder={this.props.placeholder}
onBlur={this._save}
onChange={this._onChange}
onKeyDown={this._onKeyDown}
value={this.state.value}
autoFocus={true}
/>
<a onClick={this._save}>(s)</a>
<a onClick={this._cancel}>(x)</a>
</div>);
var displayField =
(<div>
<span>{this.state.value}</span>
<a href='#' onClick={this._startEdit}>(e)</a>
</div>);
return this.state.isEditing ? inputField : displayField;
},
_startEdit: function() {
this.setState({
value: this.state.value,
fallBackValue: this.props.initialValue,
isEditing: true
});
},
_save: function() {
this.props.onSave({ id: this.props.id, value: this.state.value });
this.setState({
isEditing: false
});
},
_cancel: function() {
this.setState({
isEditing: false,
value: this.state.fallBackValue
});
},
_onChange: function(event) {
this.setState({
isEditing: true,
value: event.target.value,
fallBackValue: this.state.fallBackValue
});
},
_onKeyDown: function(event) {
if (event.keyCode === ENTER_KEY_CODE) {
this._save();
}
}
});
module.exports = TextInput;
一旦我按下 (e)dit,我很快就会看到输入框再次被跨度替换 - 正如我在调试器中看到的 getInitialState
再次被调用,将组件切换回非编辑状态。
我的思维错误在哪里,因为我预计 getInitialState
只会被调用一次?
最佳答案
看看这个 - http://jsbin.com/tixokayoke/1/ anchor 标记中缺少 href 会导致您出现问题。如果没有 href,则会重新请求页面并再次重置状态。
关于javascript - 为什么 getInitialState 再次被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27326215/
我正在寻找进入react.js的方法,但无法弄清楚为什么getInitialState被调用的次数比我预期的要多。我正在尝试编写一个组件,该组件将某些值显示为标签,并且可以通过显示输入文本以及保存或取
我是 React 的新手,我正在尝试制作抵押计算器,同时学习框架的基础知识。我的问题是,如何解决当我更改任何输入字段时,getInitialState 设置的 rate 到 2 的问题与其他所有内容一
我有一个 React 组件,单击该组件时会切换 className var Foo = React.createClass({ getInitialState: function() {
当使用通过 props 传入的数据设置组件的初始状态时,我是否应该创建一个新对象,执行类似...的操作 getInitialState: function () { return {
我在更新此代码以使用 ECMAScript6 标准时遇到问题。我曾经在一个普通的 javascript 对象上设置 getInitialState 并将其传递给 React.createClass A
我是 React js 的新手。 getDefaultProps () { return { backgroundColor: 'gray', height:
我对 React 的使用和模式有一些疑问。 我应该使用 componentDidMount 或 getInitialState 在异步加载数据?两者有什么区别? 我正在为我的前端数据结构使用 Back
我在 Babel 中使用 ES6 类。我有一个看起来像这样的 React 组件: import { Component } from 'react'; export default class MyR
我正在制作一些按钮,这些按钮将根据数据库的状态显示特定的类别。 我已使用以下命令通过发射器将 API 结果传递到我的状态: constructor(props) { super(props
这是我在 React 中的代码。我有多个用于不同功能的 getInitialState 实例。但是,我发现让它们全部以这种方式运行可能存在问题。 getInitialState: function()
我有以下组件(radioOther.jsx): 'use strict'; //module.exports =
这个问题已经有答案了: Class extends React.Component can't use getInitialState in React (3 个回答) 已关闭 7 年前。 当我将常规
这可能是一个新手问题,但我想知道为什么 React.js 渲染组件两次 - 一次是在 getInitialState() 生命周期方法被调用时,一次是在 componentDidMount(). 在哪
This React 文档页面显示,异步请求的数据应在 componentDidMount 事件中使用,而 getInitialState 将状态对象初始化为默认的空状态。 这有什么原因吗?也许 ge
我见过两者可以互换使用。 两者的主要用例是什么?有优点/缺点吗?是一种更好的做法吗? 最佳答案 这两种方法不可互换。使用 ES6 类时,您应该在构造函数中初始化状态,并在使用 React.create
我正在 React 中尝试 ES6 语法,并编写如下组件: export default class Loginform extends React.Component { getInitia
我正在 React 中尝试 ES6 语法,并编写如下组件: export default class Loginform extends React.Component { getInitia
场景: 在同一个祖父包装器 ( -> ) 中重用组件 ( -> ) 以实现代码重用。 首先,我分配了一个数据数组并循环以重新使用子组件 ( -> )。 对于第二个,它只是一个对象(具有与数组对象相
我正在尝试编写我的第一个 react 控件。这是我写的 import React from 'react'; import DimensionPickerAction from '../actions
我是一名优秀的程序员,十分优秀!