Javascript 托多利主义者
Javascript(reactjs)初学者在这里,我使用ReactHooks制作了一个非常简单的todolist应用程序,现在当用户编写新的内容时,它只是替换旧文本,所以我需要你们的建议,如何不替换旧文本,而是将所有内容都放在那里,我可以看到用户编写的内容(是否可能没有任何循环或映射功能?(如有必要,您可以使用)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
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} )
,第二个是使用
,这是我正在寻找的,但是这在没有任何循环或映射的情况下是可能的吗
实际上是一个。尝试在不使用循环或映射的情况下编写此代码将导致代码不可见。为什么要这样做?