React - 如何向數組添加新值並在警報窗口中顯示該數組?

羅伯托斯

我正在編寫一個非常簡單的程序,但我遇到了一個小問題。當我在輸入標籤中寫一個新的預兆時,我想將它添加到處於狀態的數組並在警報框中顯示數組的全部內容。我怎樣才能以最簡單的方式做到這一點?

class Draw extends React.Component {
  state = {
    omen: "",
    omens: ["first", "second", "third"],
    newOmen: "",
  };

  handleRandomOmen = () => {
    const omensArray = this.state.omens;
    const randomOmen =
      omensArray[Math.floor(Math.random() * omensArray.length)];

    this.setState({
      omen: randomOmen,
    });
  };

  handleChange = (e) => {
    this.setState({
      newOmen: e.target.value,
    });
  };

  handleAddOmen = () => {
    const test = this.state.omens.push(this.state.newOmen);
    console.log(test);
  };

  render() {
    return (
      <div className="app">
        <button onClick={this.handleRandomOmen}>Show omen</button>
        <br />
        <input
          type="text"
          value={this.state.newOmen}
          onChange={this.handleChange}
        />
        <button onClick={this.handleAddOmen}>Add omen</button>
        <h1>{this.state.omen}</h1>
      </div>
    );
  }
}

ReactDOM.render(<Draw />, document.getElementById("root"));

系統

你總是需要用 更新狀態setState,添加一個新的數組值push將被下一個反應週期覆蓋。

您可以使用spread 語法創建一個具有舊值 + 新值的新數組:

  handleAddOmen = () => {
    this.setState({
        omens: [
            ...this.state.omens,
            this.state.newOmen
        ]
    });
  };

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

過濾數組並在 React 中顯示結果

如何在 React JS 中顯示數組中的每個項目?

React:隱藏和顯示使用 map() 顯示的數組中的特定元素

函數如何正確接受 React 組件及其 props 作為 TypeScript 中的參數並呈現該組件?

使用 react native Flatlist 顯示來自文件名數組的圖像

React路由器不顯示組件數據

無法獲取映射的對像數組以顯示在 HTML 表中 React

如何推送到地圖值數組並將其用作 React 中的狀態?

隨時顯示數組內容,數組中的某個項目在我的 React 項目中無法正常工作

如何在 React 中顯示函數的結果?

如何在數組中創建 React 元素(使用 props),然後通過簡單地映射到該數組來渲染它們?

無法映射數組並獲取 Screen React Native 上的值

使用 React 基於嵌套值創建新的對像數組

Redux 在 React 的另一個數組中添加了對像數組

Redux 中的嵌套數組在 React 中重置值

如何在JS中顯示數組中的值?

如何在 React JS 中刪除數組內的數組?

傳遞一個 React 函數式組件作為函數的參數時,我應該如何用 TS 聲明函數參數類型

如何在react.js的功能組件中將json對象添加到數組狀態

react-hook-form:如果組件未呈現,如何刪除數據值?

React.useState 中的對像數組如何更新?

REACT.JS - 當我實現推送以將數組添加到數組數組時,map 不是函數?

Javascript React排序複雜數組

React 中數組對象的 SetState

在 React 中反向填充數組

React JS 中的映射數組

如何向 react-oidc 庫添加隨機數?

在來自 DB、React 的標籤中顯示數據值

我想顯示來自 react 的數組列表,但是當我認為我做的一切都正確時它沒有顯示?