gpt4 book ai didi

javascript - 如何动态显示模态中出现的内容

转载 作者:行者123 更新时间:2023-11-30 20:17:21 25 4
gpt4 key购买 nike

如果我在 <Modal> 之间写入,则单击相应按钮后,所选食物的类型会成功显示在模态中。

<p>{this.state.cTaco}</p>
<p>{this.state.bTaco}</p>
<p>{this.state.cBurrito}</p>

但我不想将其逐一写出,而是希望它使用某种映射或循环动态显示。

使用我当前的代码,它会在模态框上显示对象中所有项目的名称,而不是实际的食物名称。

cTacoClicked

cTaco

bTacoClicked

bTaco

cBurritoSelected

cBurrito

它应该显示(同样,如果我将状态 1 乘 1 地写出来,它确实会像这样显示):

Chicken Taco

Beef Taco

Chicken Burrito

我怎样才能正确地使用循环来动态地实现这一点。

这是我的代码:

import React, { Component } from 'react';
import { connect } from 'react-redux';
import Modal from 'react-modal';

import Aux from '../../../../hoc/Aux';
import FoodButton from '../FoodButtons/FoodButton';
import CheckoutButton from '../CheckoutButton/CheckoutButton';
import axios from '../../../../axios-foodChosen';

import { CLOSE_MODAL, OPEN_MODAL } from "../../../../store/action/NoNameAction";

class TacoTypes extends Component {
state = {
items: {
cTacoClicked: false,
cTaco: '',

bTacoClicked: false,
bTaco: '',

cBurritoSelected: false,
cBurrito: ''
}
}

componentWillMount() {
// for modal
Modal.setAppElement('body');
}

chickenTaco() {
// modal
const cTacoSelected = "Chicken Taco";
this.setState({cTacClicked: true, cTaco: cTacoSelected});
}

beefTaco() {
// modal
const bTacoSelected = "Beef Taco";
this.setState({bTacoClicked: true, bTaco: bTacoSelected});
}

chickenBurrito() {
// modal
const cBurritoSelected = "Chicken Burrito";
this.setState({cBurritoSelected: true, cBurrito: cBurritoSelected });
}

render() {
return (
<Aux>
<FoodButton clicked={() => this.chickenTaco()} label={"Chicken Taco"}/>
<FoodButton clicked={() => this.beefTaco()} label={"Beef Taco"}/>
<FoodButton clicked={() => this.chickenBurrito()} label={"Chicken Burrito"}/>

<CheckoutButton clicked={() => this.props.openModalRedux()}/>

<Modal isOpen={this.props.isOpen}>
<p>
{
Object.keys(this.state.items).map(i => (
<p>{i}</p>
))
}
</p>
<button onClick={() => this.props.closeModalRedux()}>Close</button>
</Modal>
</Aux>
);
}
}

const mapStateToProps = state => {
return {
// props for modal
isOpen: state.global.isModalOpen,
}
};

const mapDispatchToProps = dispatch => {
return {
// Modal handlers
openModalRedux: () => dispatch({type: OPEN_MODAL}),
closeModalRedux: () => dispatch({type: CLOSE_MODAL})
}
};

export default connect(mapStateToProps, mapDispatchToProps)(TacoTypes);

最佳答案

您目前只是在使用items 对象的键。您想要获取键在 state 对象中的值。

<Modal isOpen={this.props.isOpen}>
<p>
{Object.keys(this.state.items).map(key => (
<p key={key}>{this.state[key]}</p>
))}
</p>
<button onClick={() => this.props.closeModalRedux()}>Close</button>
</Modal>

关于javascript - 如何动态显示模态中出现的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51800782/

25 4 0
文章推荐: javascript - 在 react 中显示/隐藏特定的
文章推荐: C初学者关于文件
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com