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

标签 javascript arrays reactjs jsx

我基本上想将数组中的每个字符串放在一个单独的 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>

        );
      }
    }

console.log(category) 显示如下:

enter image description here

最佳答案

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

您想要做的是,在 componentDidMount 内部更新您的状态,如下所示:

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

关于javascript - 如何在ReactJs中使用map渲染字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59258889/

相关文章:

reactjs - 在安装Material UI时,系统提示我一系列错误?

javascript - Window Active Directory React JS 自动身份验证

Java Applet - ArrayIndexOutOfBoundsException

arrays - Julia 中的通用数值数组

.net - 在 DotNetNuke 中获取当前用户

javascript - React - 如何在父状态组件更改时强制子组件重新渲染?

javascript - 保留初始 props.history.location.pathname 并从那里导航

javascript - 如何在 Chrome 中设置没有自动前缀主机的背景图像 url?

javascript - jquery 未获取服务器上的图像值

arrays - 高效堆叠和连接 NumPy 数组