javascript - 如何将此 JSX 表转换为输入文件?
问题描述
我如何将其转换为一堆输入而不是表格?我知道该片段是不可运行的顺便说一句。如果有人可以给我一个入门或更多指导,我会像这样感激它:
function MyTable(props) {
console.log(props);
const initState = [
{ id: 1, name: "bread", quantitiy: 50, location: "cupboard" },
{ id: 2, name: "milk", quantitiy: 20, location: "fridge" },
{ id: 3, name: "water", quantitiy: 10, location: "fridge" },
{ id: 4, name: "rice", quantitiy: 10, location: "pantry" }
];
const [state, setState] = React.useState(initState);
return (
<table>
<tr key={"header"}>
{Object.keys(state[0]).map((key) => (
<th>{key}</th>
))}
</tr>
{state.map((item) => (
<tr key={item.id}>
{Object.values(item).map((val) => (
<td>{val}</td>
))}
</tr>
))}
</table>
);
}
ReactDOM.render(<MyTable staff={"hello"} />, document.getElementById("target"));
解决方案
循环中的val
变量state.map
应该是您需要的值,item
例如,您也可以使用对上面对象的引用来给它一个特定的名称。
尝试替换<td>{val}</td>
为:
<td>
<input type="text" value={val} name={item.name}>
</td>
这应该有助于作为一个起点。
推荐阅读
- angularjs - 使用 2 种方法 POST 和 PUT 发出 js 请求
- asp.net - host https website using IIS across local area network
- eloquent - 在 null 上对成员函数 connection() 的代码接收调用
- c# - 基于 EndTime 属性刷新 WPF ListView
- node.js - How allow my app to POST a cloudfunction in firebase that makes another POST?
- javascript - 在构建时明确导入路径
- ios - 如何通过安装配置文件打印我的应用程序的私人日志
- vue.js - Vue test utils - setChecked() not updating v-model
- php - 从最后循环文件?
- reactjs - 酶:用浅,redux 存储更新不会触发 componentDidUpdate