Javascript 如何在ReactJs中使用map渲染字符串数组?

Javascript 如何在ReactJs中使用map渲染字符串数组?,javascript,arrays,reactjs,jsx,Javascript,Arrays,Reactjs,Jsx,我基本上想把数组中的每个字符串放在一个单独的div中,我试图这样做,但没有渲染任何内容 export default class Loja extends Component { state = { loja: {}, lojaInfo: {}, category: [] } async componentDidMount() { const { id } = this.props.match.

我基本上想把数组中的每个字符串放在一个单独的div中,我试图这样做,但没有渲染任何内容

export default class Loja extends Component {
      state = {
        loja: {},
        lojaInfo: {},
        category: []
      }

      async componentDidMount() {
        const { id } = this.props.match.params;

        const response = await api.get(`/stores/${id}`);

        const { category, ...lojaInfo } = response.data

        this.setState({ loja: category, lojaInfo });

        console.log(category)

      }

      render() {
        const { category } = this.state;


        return (

            <p>{category.map(cat => <div>{cat}</div>)}</p>

        );
      }
    }
导出默认类Loja扩展组件{
状态={
洛亚:{},
lojaInfo:{},
类别:[]
}
异步组件didmount(){
const{id}=this.props.match.params;
const response=wait api.get(`/stores/${id}`);
const{category,…lojaInfo}=response.data
this.setState({loja:category,lojaInfo});
console.log(类别)
}
render(){
const{category}=this.state;
返回(
{category.map(cat=>{cat}}

); } }
console.log(类别)显示以下内容:


错误在于您正在更新
组件didmount
中的两个属性,一个是
loja:category
,第二个属性是
lojaInfo
,但在
render()
方法中,您正在访问
this.state.category
,它仍然是一个空字符串

相反,您要做的是,在
组件didmount
中,像这样更新您的状态:

this.setState({
  category,
  lojaInfo,
});

错误在于您正在更新
componentDidMount
中的两个属性,一个是
loja:category
,第二个属性是
lojaInfo
,但在
render()
方法中,您正在访问的
this.state.category
仍然是空字符串

相反,您要做的是,在
组件didmount
中,像这样更新您的状态:

this.setState({
  category,
  lojaInfo,
});

您已将您的
类别
添加到状态中的
loja
对象中

像这样的方法应该会奏效:

async componentDidMount() {
    const { id } = this.props.match.params;
    const response = await api.get(`/stores/${id}`);
    const { category, ...lojaInfo } = response.data
    this.setState({ category, lojaInfo });
}

您已将您的
类别
添加到状态中的
loja
对象中

像这样的方法应该会奏效:

async componentDidMount() {
    const { id } = this.props.match.params;
    const response = await api.get(`/stores/${id}`);
    const { category, ...lojaInfo } = response.data
    this.setState({ category, lojaInfo });
}

您没有更新此行
this.setState({loja:category,lojaInfo})中状态的category部分抱歉,我对react有点陌生,你能在代码中显示吗?state中的字段category始终是一个空数组。你没有更新此行中状态的category部分
this.setState({loja:category,lojaInfo})对不起,我对react有点陌生。你能在代码中显示吗?状态中的字段类别始终是空数组。