Reactjs 如何使用redux表单的formValueSelector()访问按钮的值
我使用redux来创建一些表单 今天,我需要创建一个动态的表单。 更准确地说,当用户单击按钮时,会显示一些字段 我在地图上找到了这个样品。 在本示例中,它是一个复选框 我试着用按钮做同样的事情,但它不起作用 有什么可以用按钮工作的吗 对我来说,这与复选框的逻辑相同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
<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
}));
};
}