我正在使用 ReactJS 和 shopify 的 Polaris 来创建一个网站。我对反应很陌生,所以这可能是一个新手问题,但我查看了互联网,无法将各个部分组合在一起。
我有一个下拉列表,基本上每当用户单击列表中的项目时,我都想在下拉列表旁边添加一个按钮。这是我的代码:
import React from "react";
import { ActionList, Button, List, Popover } from "@shopify/polaris";
export default class ActionListExample extends React.Component {
constructor(props) {
super(props);
this.state = {
active: false,
title: "Set Period",
};
}
renderButton() {
console.log("Button clicked")
return (
<div>
<Button fullWidth={true}>Add product</Button>;
</div>
);
}
togglePopover = () => {
this.setState(({ active }) => {
return { active: !active };
});
};
render() {
const activator = (
<Button onClick={this.togglePopover}>{this.state.title}</Button>
);
return (
<div style={{ height: "250px" }}>
<Popover
active={this.state.active}
activator={activator}
onClose={this.togglePopover}
>
<ActionList
items={[
{
content: "One",
onAction: () => {
this.setState({ title: "One" }, function() {
this.togglePopover();
this.renderButton() //THIS IS WHERE I CALL THE METHOD
});
}
}
]}
/>
</Popover>
</div>
);
}
}
我在代码中添加了注释以显示我调用 renderButton() 方法的位置。每当我单击下拉列表中的“One”元素时,它会打印出“Button clicked”,但没有任何内容呈现到屏幕上。任何帮助是极大的赞赏。提前致谢!