【发布时间】:2017-06-30 06:35:18
【问题描述】:
我是 React 的初学者。我正在做一个有父组件的项目。当我点击一个链接时,它会呈现一个模式。 modal 是另一个组件。
现在,如果我在父组件中进行一些更改并单击链接,所有更改都会被重置。 我知道这是因为父组件再次渲染。有没有办法阻止这种情况?
export default class Positions extends DJSComponent {
static propTypes = {
positionGridData: PropTypes.array.isRequired
};
static defaultProps = {
positionGridData: []
};
state = {
showModalForAddNew: false,
};
closeAddNewModal = () => {
this.setState( {
showModalForAddNew: false
});
};
openAddNewModal =() => {
this.setState( {
showModalForAddNew: true
});
};
render() {
return (
<div>
<Modal
key="modal_addnew"
modalTitle={'Add a New Row'}
show={this.state.showModalForAddNew}
onModalClose = {this.closeAddNewModal} >
< AddNewModal />
<Modal>
<Button
onClick={this.openAddNewModal}
>
Add New
</Button>
<Grid
data={this.props.positionGridData}
style={{border:'1px solid silver'}}
/>
</div>
);
}
}
基本上,Grid 组件在父组件中为我呈现一个网格。如果我单击 Add New 按钮,我不希望我的 Grid 再次被渲染。就像如果我根据自己的喜好对网格的列重新排序,然后当我单击添加新按钮时,随着网格再次呈现,一切都消失了。
编辑 1:
现在假设我更改了这样的列。 Edited grid
现在,如果我单击“添加新”按钮,我的 Grid 会回到初始状态,因为它会再次呈现我不想要的状态。
【问题讨论】:
-
编辑了我的问题。看看
标签: javascript reactjs