javascript - React.js - 动态添加 div

标签 javascript reactjs

所以我开始接触 React,但我似乎无法解决这个简单的问题(可能是因为 sleep 不足)

我想在单击“添加行”时在 render 中动态添加元素(或 div)。

我该如何继续呢?我是否需要将其保存在数组中并在渲染函数中,我必须映射它?

class SimpleExample extends React.Component {
    constructor(props) {
        super(props)
        this.handleAddingDivs = this.handleAddingDivs.bind(this)
    }


    handleAddingDivs() {
        const uniqueID = Date.now()
        return (
            <div>
                This is added div! uniqueID: {uniqueID}
            </div>
        )
    }

    render() {
        return (
            <div>
                <h1>These are added divs </h1>

                <button className="btn-anchor-style add-row-link" type="button" onClick={this.handleAddingDivs}>{'Add Row'}</button>
            </div>
        )
    }
}

最佳答案

假设您想要添加多个 div,因此为此维护一个状态变量、计数或任何其他数据(您也可以使用任何数组并存储所有 div 的唯一值),然后使用 map 或任何其他循环为此创建 div。

检查这个工作片段:

class SimpleExample extends React.Component {
    constructor(props) {
        super(props);
        this.state = {count : 0}
        this.handleAddingDivs = this.handleAddingDivs.bind(this)
    }


    handleAddingDivs() {
        this.setState({count: this.state.count + 1})     
    }
    
    renderDivs(){
        let count = this.state.count, uiItems = [];
        while(count--)
           uiItems.push(
               <div>
                   This is added div! uniqueID: {count}
               </div> 
            )
        return uiItems;
    }

    render() {
        return (
            <div>
                <h1>These are added divs </h1>
                <button className="btn-anchor-style add-row-link" type="button" onClick={this.handleAddingDivs}>{'Add Row'}</button>
                {this.renderDivs()}
            </div>
        )
    }
}

ReactDOM.render(<SimpleExample/>, document.getElementById('app'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

<div id ='app'/>

关于javascript - React.js - 动态添加 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44015876/

相关文章:

javascript - Div 复选框按属性分组

javascript - 使用 jquery 将 yii2 ajax 请求中的两个参数传递给 Controller

javascript - SignUp 和 SignIn 组件之间的路由

javascript - 安装@react-navigation/stack@5.14.3 时无法解析依赖树

javascript - React - 更新父组件的滚动位置、setState 还是使用引用?

reactjs - 类型错误 : WebAssembly. 实例化():导入 #0 模块 ="env"错误:模块不是对象或函数

asp.net - 哪些 .NET 控件不使用 javascript 来处理事件?

javascript - 处理 ko.observable 字段上未定义或空引用的异常 "JavaScript runtime error: Unable to get property ' length'?

javascript - Turn.js 基于窗口宽度的显示选项

javascript - 如何让我的获取错误显示 http 状态代码?