【发布时间】:2020-12-11 02:04:26
【问题描述】:
我有一个组件 MainContent 及其子组件 AddMock。 MainContent 中有一个表格,其中显示了一些项目列表。它对每一行都有特定的操作,例如视图和编辑,这些操作由图标通过语义 UI 反应呈现。通过单击每个图标,我需要向上滚动并展开手风琴。手风琴在AddMock。
// AddMock.js
const AddMock = () => {
return (
<div className="row">
<Accordion style={{ paddingLeft: "32px" }}>
<Card className="collapseStyle">
<Card.Header>
<Accordion.Toggle as={Button} variant="link" eventKey="0">
Add Mock
</Accordion.Toggle>
</Card.Header>
<Accordion.Collapse eventKey="0">
<Card.Body>
<Container className="mockbody">
<Header as="h3">Hierarchy</Header>
<TabContent />
</Container>
</Card.Body>
</Accordion.Collapse>
</Card>
</Accordion>
</div>
);
};
下面是 MainContent.js
const MainContent = () => {
return (
<div>
<AddMock />
<div className="container-fluid">
<div className="row">
<div className="col-md-12">
<div className="card">
<div className="card-header card-header-info">
<h4 className="card-title ">MOCK</h4>
</div>
<div className="card-body">
<form>
{loading ? (
<div className="table-responsive">
<table className="table">
<thead>
<tr>
<th>AppName</th>
<th>Parent_App</th>
<th>Created_Date</th>
<th>Req_Path</th>
<th>Resp_Code</th>
<th>Resp_Content_Type</th>
<th>Resp_Delay</th>
<th>Action</th>
</tr>
</thead>
<tbody>
{data.map((routes, index) => {
return routes.map(contents, index);
})}
</tbody>
</table>
</div>
) : (
<Spinner
animation="border"
style={{ marginLeft: "620px" }}
/>
)}
</form>
</div>
</div>
</div>
</div>
</div>
</div>
);
};
是否可以使用 window.scrollTo() 或任何其他更好的方式在 react 中实现这一点?
【问题讨论】:
-
我认为你可以在这种情况下使用 refs。看看这个:stackoverflow.com/questions/43441856/…
-
@kubilaysalih:你能举个例子说明我如何在我的情况下添加这个吗?
-
这里的例子:codesandbox.io/s/… 也检查这个库。你可以使用带有流畅动画的参考版本github.com/ganderzz/react-scroll-to
标签: javascript reactjs twitter-bootstrap react-bootstrap semantic-ui-react