我在Google上搜索了一下,但没有找到对我有用的东西。 我是JS,React和Node的新手,但是我有一个练习来完成这种语言的准备,我真的需要帮助。 我有很多段落,我需要添加一个“隐藏”按钮,只有当鼠标悬停在它上面时才能看到它。 同样,当我单击“隐藏”按钮时,该段落应该被隐藏,但是在屏幕上会出现一个选项,显示隐藏的段落,该选项仅在我开始隐藏之后出现。
我需要的代码不是html的代码,我很乐于解释,因为我尝试了很多事情而没有任何效果+我需要了解如何将新功能连接到App文件中的现有代码。 到目前为止,这是我所做的,我没有在此处复制所有内容:
export type AppState = {
tickets?: Ticket[],search: string,isToggleon?:boolean;
}
const api = createApiClient();
export class App extends React.PureComponent<{},AppState> {
constructor(props:any) {
super(props);
this.state={isToggleon:true,search:''};
this.handleclick = this.handleclick.bind(this);
}
handleclick() {
this.setState(state => ({isToggleon: !state.isToggleon
}))}
renderTickets = (tickets: Ticket[]) => {
const filteredTickets = tickets
.filter((t) => (t.title.toLowerCase() + t.content.toLowerCase()).includes(this.state.search.toLowerCase()));
return (<ul classname='tickets'>
{filteredTickets.map((ticket) => (<li key={ticket.id} classname='ticket'>
<button onClick={this.handleclick}>
{this.state.isToggleon ? 'ON' : 'OFF'}/></button>
<h5 classname='title'>{ticket.title}</h5>
<div classname='content'>{ticket.content.toLocaleString()}</div>
<footer>
<div classname='meta-data'>By {ticket.userEmail} | { new Date(ticket.creationTime).toLocaleString()}</div>
</footer>
</li>))}
</ul>);
}
render() {
const {tickets} = this.state;
return (
<main>
<h1>Tickets List</h1>
<header>
<input type="search" placeholder="Search..." onChange={(e) => this.onSearch(e.target.value)}/>
</header>
{tickets ? <div classname='results'>Showing {tickets.length} results</div> : null }
{tickets ? this.renderTickets(tickets) : <h2>Loading..</h2>}
<button onClick={this.handleclick}>
{this.state.isToggleon ? 'ON' : 'OFF'}
</button>
</main>
非常感谢您!