当前位置: 首页 > 面试题库 >

地图未在reactjs中呈现ui元素

程俊力
2023-03-14
问题内容

render更新待办事项中的对象的最佳方法是什么?我尝试通过它进行映射,但是它没有返回任何错误。

码:

import React from 'react';
const Todo = React.createClass({

    getInitialState() {
        return ({todos: []})
    },

    newTodo(e) {
        let today = new Date();
        if (e.key === 'Enter') {
          console.log(this.state.todos)
          this.setState({
              todos: this.state.todos.concat({title: e.target.value, date: today})
          })
        }
    },

    delTodo(e) {},

    render() {
        return (
            <div className="panel panel-default">
                <div className="panel-heading">Todo List Creator</div>
                <div className="panel-body">
                    <input type="text" placeholder="enter todo name" className="form-control" onKeyPress={this.newTodo}/>
                </div>
                <ul className="list-group">
                    {this.state.todos.map((td, index) => {
                        <li key={index} className="list-group-item">
                            <strong>{td.name}</strong><br/>
                            {td.date}
                        </li>
                    })}
                </ul>
            </div>
        );
    }
});

export default Todo

问题答案:

您不会在map体内返回任何内容,map如果您不返回任何内容,则undefined默认情况下它将返回。

用这个:

<ul className="list-group"> 
    {this.state.todos.map((td, index) => { 
        return <li key={index} className="list-group-item"> 
                    <strong>{td.name}</strong>
                    <br/> 
                    {td.date.toDateString()} 
               </li> 
        }) 
    } 
</ul>

或者,您也可以这样编写它,而无需使用{}

<ul className="list-group"> 
    {this.state.todos.map((td, index) => (
           <li key={index} className="list-group-item"> 
                 <strong>{td.name}</strong>
                 <br/> 
                 {td.date.toDateString()}
           </li> 
       )) 
    } 
</ul>

注意:

我们不能直接渲染任何object/array内部jsx,因为date是一个对象,因此您需要string使用toDateString()或任何其他date方法将其转换为。

查看待办事项示例:

const Todo = React.createClass({

    getInitialState() {

        return ({todos: []})

    },



    newTodo(e) {

        let today = new Date();

        if (e.key === 'Enter') {

          this.setState({

              todos: this.state.todos.concat({title: e.target.value, date: today})

          })

        }

    },



    delTodo(index) {

       let todos = this.state.todos.slice();

       todos.splice(index, 1);

       this.setState({todos})

    },



    render() {

        return (

            <div className="panel panel-default">

                <div className="panel-heading">Todo List Creator</div>

                <div className="panel-body">

                    <input type="text" placeholder="enter todo name" className="form-control" onKeyPress={this.newTodo}/>

                </div>

                <ul className="list-group">

                    {this.state.todos.map((td, index) => {

                        return <li key={index} className="list-group-item">

                                  <strong>{td.title}</strong>

                                  <button onClick={() => this.delTodo(index)}>delete</button>

                                  <br/>

                                  {td.date.toDateString()}

                               </li>

                        })

                    }

                </ul>

            </div>

        );

    }

});



ReactDOM.render(<Todo/>, 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'/>

查看此代码段以了解map

let a = [1,2,3,4,5,6];



let b = a.map(el => {

   if(el % 2)

      return el;

});



console.log(b);


 类似资料:
  • 假设我有: 我如何使它最终具有SMTH1行量,每个行包含SMTH2列量?

  • 我正在使用D3JS库来显示地图。加载美国各州地图可以正常工作,但如果我尝试加载单个州的县地图,则无法正常工作。我在所有州使用的文件位于https://raw.githubusercontent.com/d3/d3.github.com/master/us-10m.v1.json.我当前使用的状态映射是https://raw.githubusercontent.com/deldersveld/top

  • 问题内容: 我正在使用Reactjs,编写一个菜单组件。 每当我在map函数内部使用“ this”时,它都是未定义的,但在外部,则没有问题。 错误: “无法读取未定义的属性’props’” 有人帮我!:(( 问题答案: 需要第二个参数来设置在映射函数中引用的内容,因此将其作为第二个参数传递以保留当前上下文: 另外,您可以使用ES6 箭头功能自动保留当前上下文:

  • 我使用Queue发送电子邮件,代码如下: 在控制器部分,我使用send- 我正在使用视图: 现在,当我尝试发送时,收到的电子邮件中没有任何内容。 我已经调试了整个供应商\laravel\framework\src\illighted\Mail\Mailer。php类并发现renderView函数中无法呈现视图。 我还将视图Doctype更改为HTML5,但得到了相同的结果,没有内容。 渲染视图正在

  • 这是用reactjs呈现原始html的唯一方法吗? 我知道有一些很酷的方法用JSX标记东西,但我主要感兴趣的是能够渲染原始的html(所有的类,内联样式等)。像这样复杂的东西: 我不想在JSX中重写所有这些。 也许我对这一切的想法都错了。请纠正我。