JSX-компонент не отображает карту состояния - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь составить список, когда пользователи выбирают свои избранные ссылки на клике ...

Есть идеи, почему это не работает? это будет sh значений для state.array в console.log, но JSX не будет отображать в ul.li

import React, { Component } from "react";

export default class App extends Component {
  constructor(props) {
    super(props);

    this.state = {
      link: {
        name: "",
        type: "",
        size: "",
        tests: []
      },
      tests: ["1", "2", "3", "4"]
    };
  }

  componentDidMount() {
    console.log(this.state);
  }

  onClick = e => {
    const linktests = this.state.link.tests;
    console.log("clicked");

    linktests.push(e.target.innerText);
    console.log("link tests : " + linktests);
  };
  render() {
    const { link, tests } = this.state;
    const linktests = this.state.link.tests;
    return (
      <div>
        <div id="link">
          {linktests.map(stuff => (
            <ul>
              <li> {stuff} </li>
            </ul>
          ))}
        </div>
        <br></br>
        {tests.map(stuff => (
          <ul>
            <li onClick={this.onClick} value={stuff}>
              {stuff}
            </li>
          </ul>
        ))}
      </div>
    );
  }
}

надеюсь, что кто-то может помочь: D <3 спасибо </p>

1 Ответ

0 голосов
/ 17 февраля 2020

Вам необходимо установить новые ссылки на штат. Также используйте concat или slice в исходном массиве состояний, чтобы избежать его непосредственного изменения.

 onClick = e => {
    const linktests = this.state.link.tests.concat();
    console.log("clicked");

    linktests.push(e.target.innerText);
    this.setState({link: { ...this.state.link, tests: linktests});
  };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...