如何根据页面组件动态定位按钮?
How can I position button dynamatically according to page components?
在 React 应用程序中,我正在显示图像列表。删除单本书后,Hide Books
按钮将取代该组件。
我想要实现的是 Hide Books
按钮应该保持在相同的位置并且应该动态地改变它在 y axis
上的位置如果整行书被删除
应用程序的初始状态
删除个别书籍时 -
app.js
return(
<div style={{ position: "relative", minHeight: "100vh" }}>
<button
style={{
position: "absolute",
bottom: "",
}}
onClick={clearBooks}
>
Hide Books
</button>
</div>
)
你能分享更多你的代码吗?也许有一个codesandox的例子?这似乎是一个样式问题,但如果没有更多代码就很难分辨。
-编辑-
您的按钮应该与您的图书列表分开,这就是它基本上“跟随”您最后一张图书卡片的原因。
尝试做这样的事情
return (
<section className='wrapper'>
<div className='bookList'>
{booksData.map(book => {
//code your books here
}
</div>
//then put your button out of the div
<button onClick={function}>hide books</button>
</section>
)
你的 CSS 包装器 div 可能是这样的
.wrapper{
display: flex;
flex-direction: column
}
这样你会先有书,然后按钮会显示在列表下方
将按钮作为 Books section
的下一个同级按钮。如下所示。我所做的只是将按钮移出该部分。您必须为更新后的布局设置带填充等按钮的样式。
// in index.js, BookList
return (
<>
<section className="booklist">
{booksData.map((book, index) => {
return (
<Book
key={index}
{...book}
removeIndividualBook={removeIndividualBook}
></Book>
);
})}
</section>
{booksData.length === 0 ? (
<button onClick={handleShowBook}>Show Books</button>
) : (
<div style={{ position: "relative", minHeight: "100vh" }}>
<button
style={{
// position: "absolute",
// marginTop: "2350px",
// marginLeft: "28px",
position: "absolute",
//left: "12%",
bottom: "",
}}
onClick={clearBooks}
>
Hide Books
</button>
</div>
)}
</>
);
在 React 应用程序中,我正在显示图像列表。删除单本书后,Hide Books
按钮将取代该组件。
我想要实现的是 Hide Books
按钮应该保持在相同的位置并且应该动态地改变它在 y axis
上的位置如果整行书被删除
应用程序的初始状态
删除个别书籍时 -
app.js
return(
<div style={{ position: "relative", minHeight: "100vh" }}>
<button
style={{
position: "absolute",
bottom: "",
}}
onClick={clearBooks}
>
Hide Books
</button>
</div>
)
你能分享更多你的代码吗?也许有一个codesandox的例子?这似乎是一个样式问题,但如果没有更多代码就很难分辨。
-编辑-
您的按钮应该与您的图书列表分开,这就是它基本上“跟随”您最后一张图书卡片的原因。
尝试做这样的事情
return (
<section className='wrapper'>
<div className='bookList'>
{booksData.map(book => {
//code your books here
}
</div>
//then put your button out of the div
<button onClick={function}>hide books</button>
</section>
)
你的 CSS 包装器 div 可能是这样的
.wrapper{
display: flex;
flex-direction: column
}
这样你会先有书,然后按钮会显示在列表下方
将按钮作为 Books section
的下一个同级按钮。如下所示。我所做的只是将按钮移出该部分。您必须为更新后的布局设置带填充等按钮的样式。
// in index.js, BookList
return (
<>
<section className="booklist">
{booksData.map((book, index) => {
return (
<Book
key={index}
{...book}
removeIndividualBook={removeIndividualBook}
></Book>
);
})}
</section>
{booksData.length === 0 ? (
<button onClick={handleShowBook}>Show Books</button>
) : (
<div style={{ position: "relative", minHeight: "100vh" }}>
<button
style={{
// position: "absolute",
// marginTop: "2350px",
// marginLeft: "28px",
position: "absolute",
//left: "12%",
bottom: "",
}}
onClick={clearBooks}
>
Hide Books
</button>
</div>
)}
</>
);