Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 托多利主义者_Javascript_Html_Arrays_Reactjs_Map Function - Fatal编程技术网

Javascript 托多利主义者

Javascript 托多利主义者,javascript,html,arrays,reactjs,map-function,Javascript,Html,Arrays,Reactjs,Map Function,Javascript(reactjs)初学者在这里,我使用ReactHooks制作了一个非常简单的todolist应用程序,现在当用户编写新的内容时,它只是替换旧文本,所以我需要你们的建议,如何不替换旧文本,而是将所有内容都放在那里,我可以看到用户编写的内容(是否可能没有任何循环或映射功能?(如有必要,您可以使用) import React,{useState}来自“React”; 导入“/App.css”; 函数App(){ 常量[input,setValue]=useState(“”) c

Javascript(reactjs)初学者在这里,我使用ReactHooks制作了一个非常简单的todolist应用程序,现在当用户编写新的内容时,它只是替换旧文本,所以我需要你们的建议,如何不替换旧文本,而是将所有内容都放在那里,我可以看到用户编写的内容(是否可能没有任何循环或映射功能?(如有必要,您可以使用)

import React,{useState}来自“React”;
导入“/App.css”;
函数App(){
常量[input,setValue]=useState(“”)
const[something,setSomething]=useState(“”)
常量handleInput=(事件)=>{
设置值(event.target.value);
}
const jotain=(事件)=>{
event.preventDefault();
如果(!输入)返回
设定值(输入)
设置值(“”);
console.log(输入)
}
返回(
{某物}

); }
导出默认应用程序;
您基本上需要将所有输入存储在一个数组中而不是字符串中。然后使用
map()
呈现所有保存的TODO

const{useState}=React;
函数App(){
常量[input,setValue]=useState(“”)
const[todos,setTodos]=useState([]
常量handleInput=(事件)=>{
设置值(event.target.value);
}
const jotain=(事件)=>{
event.preventDefault();
如果(!输入)返回
常量newTodos=[…todos,输入];
setTodos(newTodos);
设置值(“”);
}
返回(
{todos.map((todo,index)=>

{todo}

)} 提交 ); } ReactDOM.render(,document.getElementById(“根”);

新增两项:

  • 我们需要将
    某物设置为数组
  • concat
    具有新值的某物
将与您提到的相同的示例放在没有任何循环或映射的情况下。您可以根据自己的选择映射或设置
something
列表的样式

import React, { useState } from 'react';
// import './App.css';

function App() {
  const [input, setValue] = useState("")
  const [something, setSomething] = useState([])

  const handleInput = (event) => {
    setValue(event.target.value);
  }

  const jotain = (event) => {
    event.preventDefault();
    if (!input) return;
    setSomething(something.concat(<li>{input}</li>))
    setValue("");
    console.log(input)
  }


  return (
    <div>
      <ul> {something} </ul>
      <form onSubmit={jotain} >
        <input placeholder="Kirjoita jotain" type="text" value={input} onChange={handleInput} />
      </form>
    </div>
  );
}

export default App;
import React,{useState}来自“React”;
//导入“/App.css”;
函数App(){
常量[input,setValue]=useState(“”)
const[something,setSomething]=useState([])
常量handleInput=(事件)=>{
设置值(event.target.value);
}
const jotain=(事件)=>{
event.preventDefault();
如果(!输入)返回;
setSomething(something.concat(
  • {input}
  • ) 设置值(“”); console.log(输入) } 返回(
      {something}
    ); } 导出默认应用程序;
    不清楚您想要的是什么,您能给出一个所需行为的示例吗?@当用户写入某个内容并按enter键时,它会出现在这里:{something}

    ,当下一个用户写入某个内容时,它只会出现在前一个文本的下方,而不会替换它(如果可能的话,希望不使用任何循环或映射函数)当用户写入例如“olee”和第二个用户写入“toot”时,“toot”应该在“olee”下,而不是替换它!上面的代码不替换它..它只是在一行中包含数据。所有内容都存在于
    某物
    常量中。您可以根据需要循环它或映射它或设置它的样式在旧版本中,我在两个地方更新了代码:第一个是
    设置一些东西(something.concat(
  • {input}
  • ,第二个是使用
    ,这是我正在寻找的,但是这在没有任何循环或映射的情况下是可能的吗
    实际上是一个。尝试在不使用循环或
    映射的情况下编写此代码将导致代码不可见。为什么要这样做?