我正在尝试从我的JSON响应中显示一个键值。所以像这样的字段数据{ DMR_5_why_who_test :"测试",为什么:测试}。我希望能够显示粗体值或键值。目前我的代码如下所示。但它吐出[Object,Object]而不是我的键值
dotesting = () => {
const j = Object.values(this.state.data);
var journalEntries = [];
for (var i = 0; i < j.length; i++){
journalEntries.push(
<div>
<h3>{j[i].fieldData.toString()}</h3>
</div>);
}
console.log(<div>{journalEntries}</div>)
return(<div>{journalEntries}</div>);
}
答案 0 :(得分:0)
只需使用Object.keys。
Object.keys(this.state.data).map()
或者,您可以使用dotesting = () => {
const journalEntries = Object.keys(this.state.data).map(el =>
<div>
<h3>{el.fieldData.toString()}</h3>
</div>
)
return(<div>{journalEntries}</div>);
}
进行迭代:
env = os.environ.copy()
env["DISPLAY"] = ":0"
env["XAUTHORITY"] = "~/.Xauthority"
subprocess.Popen('python2.7 /path/bla/bla/myapp.py', env=env, shell=True)
答案 1 :(得分:0)
访问Object的键,记录Object.keys()而不是Oject.values
&#34; Object.keys()方法返回给定对象自己的...属性的数组,其顺序与for ... in&#34;
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
答案 2 :(得分:0)
由于您正在谈论fieldData
,您需要使用Object.keys
来提取密钥,然后显示这些密钥。
dotesting = () => {
const j = Object.values(this.state.data);
var journalEntries = [];
for (var i = 0; i < j.length; i++){
const keys = Object.keys(j[i].fieldData);
journalEntries.push(
<div>
<h3>{keys.join(', ')}</h3>
</div>);
}
console.log(<div>{journalEntries}</div>)
return(<div>{journalEntries}</div>);
}
答案 3 :(得分:0)
JSX正在指示返回引用journalEntries的div,这是一个对象,所以它正在按照你的要求去做。
相反,您可以使用Object.keys映射Object的键并返回值。通过这种方式,您告诉JSX打印每个值与整个Array对象。
旁注:我会使用Array.map静态方法和for循环,因为它本质上是声明性的,任何声明/功能都是更惯用的React。
const someData = {
best: 'cats',
secondBest: 'dogs'
}
const getData = () => Object.keys(someData).map((item, index) => {
return someData[item];
})
const App = () => (
<div>
{getData()}
</div>
);
ReactDOM.render(<App />, document.getElementById('root'));
<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="root"></div>