Javascript 在React中显示更多信息
我想在单击时显示更多信息,但我有不同的div要显示/隐藏。 所以我是这样做的: 国家是:Javascript 在React中显示更多信息,javascript,reactjs,if-statement,state,show-hide,Javascript,Reactjs,If Statement,State,Show Hide,我想在单击时显示更多信息,但我有不同的div要显示/隐藏。 所以我是这样做的: 国家是: this.state = { showMore: false, showRewards: false, fees: false, showFees: false }; 其中一个部门: 这太长了,很难看而且不正确(我一次只能看到一个扩展的div)如何改进它 这是一种更好更干净的方法: function show (name) {
this.state = {
showMore: false,
showRewards: false,
fees: false,
showFees: false
};
其中一个部门:
这太长了,很难看而且不正确(我一次只能看到一个扩展的div)如何改进它 这是一种更好更干净的方法:
function show (name) {
let { showMore, showRewards, showFees } = this.state;
showMore = name === 'hightlights' && showMore === false;
showRewards = name === 'rewards' && showRewards === false;
showFees = name === 'fees' && showFees === false;
this.setState({
showFees,
showRewards,
showMore
});
这是一种更好、更干净的方法:
function show (name) {
let { showMore, showRewards, showFees } = this.state;
showMore = name === 'hightlights' && showMore === false;
showRewards = name === 'rewards' && showRewards === false;
showFees = name === 'fees' && showFees === false;
this.setState({
showFees,
showRewards,
showMore
});
如果您能向我们展示细节和奖励的结构,这可能会更容易。我猜你是在映射一个元素,这就是为什么它要打印一个元素。但是,试着改变这一行
detail.rewards.reward.map((name, i) => <p key={i}> { name }</p> )
detail.rewards.reward.map((name,i)=>{name}
)
替换为以下代码:
detail.rewards.map((reward, i) => <p key={i}> { reward.name }</p> )
detail.rewards.map((reward,i)=>{reward.name}
)
如果您能向我们展示细节和奖励的结构,可能会更容易。我猜你是在映射一个元素,这就是为什么它要打印一个元素。但是,试着改变这一行
detail.rewards.reward.map((name, i) => <p key={i}> { name }</p> )
detail.rewards.reward.map((name,i)=>{name}
)
替换为以下代码:
detail.rewards.map((reward, i) => <p key={i}> { reward.name }</p> )
detail.rewards.map((reward,i)=>{reward.name}
)
好多了,但我还是一次只能看到一个。好多了,但我还是一次只能看到一个