Вам необходимо переместить Collapsible
в другой компонент, основанный на классе, где вы можете иметь состояние, чтобы показать / скрыть ваш Form
компонент,
Во вновь созданном компоненте, основанном на классе, вам необходимо поддерживать состояние, подобное,
constructor(props){
super(props);
this.state ={
showForm: false
}
}
Затем в рендере вы можете показать Form
вот так,
<Panel
header="This is panel header 1"
key="1" style={customPanelStyle}
extra={this.genExtra()}
>
<p>{text}</p>
{this.state.showForm && <Form />}
</Panel>
И, наконец, при нажатии на иконку редактирования формы вам нужно изменить состояние showForm
как,
genExtra = () => (
<Icon
type="form"
onClick={event => {
// If you don't want click extra trigger collapse, you can prevent this:
event.stopPropagation();
this.setState({showForm: true})
console.log('You have click on edit form');
}}
/>
);
Примечание: В компоненте Form
вы получаете предупреждение за lable
,
<label htmlFor="name">Name</label> //instead of `for` attribute in react we have `htmlFor` attribute.
Демо