Reactjs 如何使用redux表单的formValueSelector()访问按钮的值

Reactjs 如何使用redux表单的formValueSelector()访问按钮的值,reactjs,redux,react-redux,redux-form,Reactjs,Redux,React Redux,Redux Form,我使用redux来创建一些表单 今天,我需要创建一个动态的表单。 更准确地说,当用户单击按钮时,会显示一些字段 我在地图上找到了这个样品。 在本示例中,它是一个复选框 我试着用按钮做同样的事情,但它不起作用 有什么可以用按钮工作的吗 对我来说,这与复选框的逻辑相同 <Field name="button" id="button" type='button' component={renderButton} /> { button && <d

我使用redux来创建一些表单

今天,我需要创建一个动态的表单。 更准确地说,当用户单击按钮时,会显示一些字段

我在地图上找到了这个样品。 在本示例中,它是一个复选框

我试着用按钮做同样的事情,但它不起作用

有什么可以用按钮工作的吗

对我来说,这与复选框的逻辑相同

<Field
  name="button"
  id="button"
  type='button'
  component={renderButton}
/>
{ button &&
   <div>
     test
   </div>
}


const selector = formValueSelector( 'testFrom' );

function mapStateToProps (state) {
    const button = selector( state , 'button' );
    return {
        button ,
    };
}
感谢您的帮助。

button元素没有value属性,这就是为什么Selector State,'button'不返回任何内容

将onClick处理程序添加到按钮中,您可以在其中将任何值设置为表单组件的状态。并根据此值显示或隐藏其他字段


谢谢你的回答。这是可行的,但我尝试创建一个无状态的组件,这样就不需要更改状态。此外,在我的例子中,我希望在用户单击该字段时可以隐藏和删除该字段的值。我尝试从发送redux操作,但它不起作用。如果需要无状态组件,可以从父组件将onShowEmailFieldClick函数和isEmailVisible值作为道具传递。要删除字段切换,请选择可见值
class SelectingFormValuesForm extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            isEmailVisible: false
        };
    }

    render() {
        const {handleSubmit} = this.props;
        const {isEmailVisible} = this.state;

        return (
            <form onSubmit={handleSubmit}>
                {isEmailVisible &&
                <Field
                    name="email"
                    component="input"
                    type="email"
                    placeholder="Email"
                />
                }
                <button type="button" onClick={this.onShowEmailFieldClick}>{isEmailVisible ? 'Hide' : 'Show'} email field</button>
            </form>
        );
    }

    onShowEmailFieldClick = () => {
        this.setState(prevState => ({
            isEmailVisible: !prevState.isEmailVisible
        }));
    };
}