Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 单选按钮不工作_Reactjs_React Redux - Fatal编程技术网

Reactjs 单选按钮不工作

Reactjs 单选按钮不工作,reactjs,react-redux,Reactjs,React Redux,我已经创建了一个无线电组件,但是当单击它时,它不会显示选中 这是密码 import React from 'react'; import classnames from 'classnames'; const RadioButton = (field) => { const inputClasses = classnames('form-group has-feedback ',{ 'has-error': field.meta.touched && f

我已经创建了一个无线电组件,但是当单击它时,它不会显示选中 这是密码

import React from 'react';
import classnames from 'classnames';

const RadioButton = (field) => {

  const inputClasses = classnames('form-group  has-feedback  ',{
    'has-error': field.meta.touched && field.meta.error,
  });
  return(
    <div className={inputClasses}>
        <label className="radio-inline custom-radio nowrap">
        <input
          disabled={field.disabled}
          type="radio"
          name={field.input.name}
          value={field.input.value}
          defaultChecked={field.defaultChecked}
          {...field.input}
        />
        <span>{field.label}</span>
      </label>
    </div>
  );
};

export default RadioButton;
从“React”导入React;
从“类名称”导入类名称;
常量单选按钮=(字段)=>{
const inputClasses=classnames('表单组有反馈'{
“has error”:field.meta.com&&field.meta.error,
});
返回(
{field.label}
);
};
导出默认单选按钮;
以下是字段:

                      <Field
                        label="True"
                        component={RadioButton}
                        name="True"
                        type="radio"
                        value={true}
                       defaultChecked={ true }
                      />
                      <Field
                        label="False"
                        component={RadioButton}
                        name="False"
                        type="radio"
                        value={false}
                        defaultChecked={ false }
                      />

这是我在控制台上得到的警告: 警告:RadioButton包含带有选中和默认选中道具的单选类型输入。输入元素必须受控或不受控(指定选中的属性或默认选中的属性,但不能同时指定两者)。决定使用受控或非受控输入元素,并移除其中一个道具

有人能帮我吗?

请用这个

它工作得很好

            <label>
                <input type="radio" defaultChecked={true} disabled={false} value={YOUR_Value} />
                {this.state.content}
            </label>

{this.state.content}

您应该查看官方文档,特别是关于和的章节


受控元件 基本上,通过受控组件,您可以让React管理所述元素的值

其值由React以这种方式控制的输入表单元素称为“受控组件”

要创建受控组件,您需要一个存储其值的状态变量,以及一个基于某个事件(单击、输入等)改变其值的函数

下面是一个简单的例子:

class ControlledComponentDemo扩展了React.Component{
构造函数(){
超级();
此.state={
输入:“,
无线电:空,
复选框:[]
};
}
changeInput=(e)=>{
this.setState({input:e.target.value});
}
changeRadio=(id)=>{
this.setState({radio:id});
}
changeCheckbox=(id)=>{
让arr=this.state.checkbox.slice();
如果(arr.indexOf(id)>=0){
arr.拼接(arr.indexOf(id),1);
}否则{
arr.push(id);
}
this.setState({checkbox:arr});
}
render(){
返回(




=0}onChange={this.changeCheckbox.bind(this,0)}/> =0}onChange={this.changeCheckbox.bind(this,1)}/> ); } } ReactDOM.render(,document.getElementById(“app”)


控制台中是否有任何错误或警告?另外,你能告诉我们
字段
对象是什么样子的吗?我会更新这个问题。没有错误。。我要警告你,没有任何财产的价值分配是什么意思?请参考HTML中的输入标签!JSX很好。你必须使用正确的语法。{…field.input}//在这里使用它!不,OP正确地使用了它。这叫做解构道具。非常感谢克里斯。。你能告诉我为了让它工作我必须做些什么改变吗。。如果我删除{…field.input},它将不会接受所选的输入,因为你说我把事情搞混了。那么你能告诉我应该怎么做才能得到初始值吗?我不知道{field.input}中有什么,也不知道它是否需要任何东西。但是如果您遵循我的有状态示例,只需添加一个value prop并确保它有一个初始值(在构造函数中设置)