我在地图中有一个按钮,地图正在运行3次,所以有3个按钮,当点击它时应该将状态更改为true或false以显示或隐藏标题文本,但是当我点击一个按钮时它显示所有三个文本。为什么会这样?以及如何处理这一点,以便点击一个按钮不应该触发所有按钮
@Entity
public class User {
@Id
private long id;
@Column(name = "username")
private String username;
@Column(name = "email")
private String email;
@Column(name = "password")
private String password;
}
像这样的东西
答案 0 :(得分:0)
这是事物的组合。例如,您已将相同的事件处理程序附加到所有按钮,因此在单击任何按钮时会触发相同的逻辑。并且您只有一个状态字段来处理是否显示文本,即使您有3个文本字段。根据您实际想要实现的目标,您可以通过执行以下操作来解决此问题。对事件处理程序使用内联方法,并有多个字段来处理可见文本的状态。
更新现在基于任意大小的数组
设置状态数组我没有检查过这个,但可以修复这样的事情:
SELECT myFields
FROM myTable
WHERE (post_id = 21179) AND (meta_key LIKE 'product_shops_%')
答案 1 :(得分:0)
感谢 @John Teague 提出建议 这是工作链接http://codepen.io/Zedak/pen/RpgRoQ?editors=0011
class Example extends React.Component{
constructor(){
super()
this.state={
arr:[ 1,2,3 ],
show : [false,false,false]
}
this.handleShow=this.handleShow.bind(this)
}
handleShow(e,i){
this.state.show[i]=!this.state.show[i]
this.setState({
show:this.state.show
})
}
render(){
return(<div>
{this.state.arr.map((x,i)=>
<div>
<button onClick={ (evt) => this.handleShow(evt,i) }> click me </button>
{this.state.show[i]? <h1> I am text inside map</h1>
: false
}
</div>
)}
</div>
)
}}
ReactDOM.render(<Example/>,document.getElementById('root'))
但我仍然想知道如何处理,如果数组很大或未知。