首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从redux-devtools中更改值后,选中不更改的框

从redux-devtools中更改值后,选中不更改的框
EN

Stack Overflow用户
提问于 2016-01-26 10:29:51
回答 1查看 2.3K关注 0票数 2

地区处于我的redux应用程序状态。通过react更改其值-devtools(还原选项),更改段落内部值,但不更改复选框值。如果它再次呈现,不应该接受与p标记内相同的值吗?

代码语言:javascript
复制
import React, {Component, PropTypes} from 'react'
import {defineMessages, injectIntl, intlShape} from 'react-intl'
const messages = defineMessages({
  spanish: {
    id: 'languageSelector.spanish',
    description: 'Select language',
    defaultMessage: 'Spanish'
  },
  english: {
    id: 'languageSelector.english',
    description: 'Select language',
    defaultMessage: 'English'
  },
  french: {
    id: 'languageSelector.french',
    description: 'Select language',
    defaultMessage: 'French'
  }
})

class LanguageSelector extends Component {
    render () {
      const {formatMessage, locale} = this.props.intl
      return (
        <div>
        <select defaultValue={locale} onChange={(e) => this.handleChange(e)}>
                <option id='es' value='es'>{formatMessage(messages.spanish)}</option>
                <option id='fr' value='fr'>{formatMessage(messages.french)}</option>
                <option id='en' value='en'>{formatMessage(messages.english)}</option>
        </select>
        <p>{locale}</p>
        </div>
        )
    }
    handleChange (e) {
      this.props.onChange(e.target.value)
    }
}

LanguageSelector.propTypes = {
  intl: intlShape.isRequired,
  onChange: PropTypes.func.isRequired
}
export default injectIntl(LanguageSelector)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-26 12:13:06

defaultValue更改为value。即

代码语言:javascript
复制
<select value={locale} onChange={(e) => this.handleChange(e)}>

解释

只有当表单字段是不受控制的组件时才使用。更改不受控制组件的值的唯一方法是通过用户输入。

如果使用value,则表单组件被视为受控组件。通过显式设置值,可以在后续呈现中更改其值。受控组件还必须有一个onChange处理程序,而您的处理程序就是这样做的。

有关受控/不受控制的窗体组件的详细信息,请参阅反应形式

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

https://stackoverflow.com/questions/35011730

复制
相关文章

相似问题

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