如何从对象中提取多个键并打印输出
How can i extract more than one key from an Object and print the output
如何从事件处理程序中的对象打印多个键?
这是我的代码的 link - https://codesandbox.io/s/suspicious-hamilton-erkqv
在第 35 行,我使用对象 "x" 调用事件处理程序 ChangeName。我能够打印一个名为 'name' (x.name) 的密钥
我如何打印 x 对象的所有 3 个属性(名称、ID、类型)??
试图用 object.keys(x) 将 x 转换成一个数组,但是当我遍历输出时它给出了一个错误,说不能使用映射函数
const ChangeName = x => {
setvalue(x.name);
};
<div>{value}</div> // display the results
你的值不是一个数组,它是一个对象,这就是为什么你不能使用 map 方法,它是这样工作的:
import React, { useState, useEffect } from "react";
import ReactDOM from "react-dom";
function App() {
const [posts, setposts] = useState([]);
const [value, setvalue] = useState("");
useEffect(() => {
const posts = [
{
id: 1,
name: "Name 1",
type: "Type 1"
},
{
id: 2,
name: "Name 2",
type: "Type 2"
},
{
id: 3,
name: "Name 3",
type: "Type 3"
},
{
id: 4,
name: "Name 4",
type: "Type 4"
}
];
setposts(posts);
}, []);
const ChangeName = x => {
setvalue(x);
};
return (
<div>
<ul>
{posts.map(post => (
<li key={post.id}>
{post.name},{post.type}
<button onClick={() => ChangeName(post)}>More Info</button>
</li>
))}
</ul>
<div>
{value.name}
{value.id}
{value.type}
</div>
</div>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
一个运行代码:
import React, { useState, useEffect } from "react";
import ReactDOM from "react-dom";
function App() {
const [posts, setposts] = useState([]);
const [values, setvalue] = useState([]);
useEffect(() => {
const posts = [
{
id: 1,
name: "Name 1",
type: "Type 1"
},
{
id: 2,
name: "Name 2",
type: "Type 2"
},
{
id: 3,
name: "Name 3",
type: "Type 3"
},
{
id: 4,
name: "Name 4",
type: "Type 4"
}
];
setposts(posts);
}, []);
const ChangeName = x => {
console.log(Object.values(x));
Object.values(x).map(k => setvalue(k));
};
return (
<div>
<ul>
{posts.map(post => (
<li key={post.id}>
{post.name},{post.type}
<button onClick={ChangeName.bind(this, post)}>More Info</button>
</li>
))}
</ul>
<div>{values}</div>
</div>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
您需要设置值而不是值。
如何从事件处理程序中的对象打印多个键?
这是我的代码的 link - https://codesandbox.io/s/suspicious-hamilton-erkqv
在第 35 行,我使用对象 "x" 调用事件处理程序 ChangeName。我能够打印一个名为 'name' (x.name) 的密钥 我如何打印 x 对象的所有 3 个属性(名称、ID、类型)??
试图用 object.keys(x) 将 x 转换成一个数组,但是当我遍历输出时它给出了一个错误,说不能使用映射函数
const ChangeName = x => {
setvalue(x.name);
};
<div>{value}</div> // display the results
你的值不是一个数组,它是一个对象,这就是为什么你不能使用 map 方法,它是这样工作的:
import React, { useState, useEffect } from "react";
import ReactDOM from "react-dom";
function App() {
const [posts, setposts] = useState([]);
const [value, setvalue] = useState("");
useEffect(() => {
const posts = [
{
id: 1,
name: "Name 1",
type: "Type 1"
},
{
id: 2,
name: "Name 2",
type: "Type 2"
},
{
id: 3,
name: "Name 3",
type: "Type 3"
},
{
id: 4,
name: "Name 4",
type: "Type 4"
}
];
setposts(posts);
}, []);
const ChangeName = x => {
setvalue(x);
};
return (
<div>
<ul>
{posts.map(post => (
<li key={post.id}>
{post.name},{post.type}
<button onClick={() => ChangeName(post)}>More Info</button>
</li>
))}
</ul>
<div>
{value.name}
{value.id}
{value.type}
</div>
</div>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
一个运行代码:
import React, { useState, useEffect } from "react";
import ReactDOM from "react-dom";
function App() {
const [posts, setposts] = useState([]);
const [values, setvalue] = useState([]);
useEffect(() => {
const posts = [
{
id: 1,
name: "Name 1",
type: "Type 1"
},
{
id: 2,
name: "Name 2",
type: "Type 2"
},
{
id: 3,
name: "Name 3",
type: "Type 3"
},
{
id: 4,
name: "Name 4",
type: "Type 4"
}
];
setposts(posts);
}, []);
const ChangeName = x => {
console.log(Object.values(x));
Object.values(x).map(k => setvalue(k));
};
return (
<div>
<ul>
{posts.map(post => (
<li key={post.id}>
{post.name},{post.type}
<button onClick={ChangeName.bind(this, post)}>More Info</button>
</li>
))}
</ul>
<div>{values}</div>
</div>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
您需要设置值而不是值。