Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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 react.js动态抓取对象,导致未定义_Javascript_Reactjs - Fatal编程技术网

Javascript react.js动态抓取对象,导致未定义

Javascript react.js动态抓取对象,导致未定义,javascript,reactjs,Javascript,Reactjs,我正在学习react.js。我有一个对象文本,我试图根据从选择输入中选择的内容在对象中动态选择一个对象。然而,我正在变得不明确。我试过点和括号表示法。我正在成功地获取所选选项的值并将其存储在变量中。有什么想法吗 这是我的目标: var horoList = { aries: { title: "JerkFace", }, cancer: { title: "Cancerous", }, gemini : { title: "GoofBall" } } ; 下面是我在re

我正在学习react.js。我有一个对象文本,我试图根据从选择输入中选择的内容在对象中动态选择一个对象。然而,我正在变得不明确。我试过点和括号表示法。我正在成功地获取所选选项的值并将其存储在变量中。有什么想法吗

这是我的目标:

var horoList = {
aries: {
    title: "JerkFace",
},
cancer: {
    title: "Cancerous",
},
gemini : {
    title: "GoofBall"
}
} ;
下面是我在render方法中的一些JSX:

                    <select name="pick-sign" onChange={this.handleChange}>
                        <option></option>
                        <option value="aries" >Aries</option>
                        <option value="cancer" >Cancer</option>
                        <option value="gemini" >Gemini</option>
                        <option value="taurus" >Taurus</option>
                    </select>

如果更改此行:

console.log(horoList['selectedHoro'])//输出:未定义

致:

console.log(horoList[selectedHoro])

您应该得到预期的输出。当您使用
horoList['selectedHoro']
时,将使用文本字符串值
selectedHoro
,因此它将是
horoList.selectedHoro
。当您使用
horoList[selectedHoro]
时,
selectedHoro
是一个变量,它的值用于确定要解析的属性名称,因此它将解析为
horoList.aeries
(当
selectedHoro
时)

        handleChange: function(e) {
        var selectedHoro = e.target.value;
        console.log(selectedHoro); //outputs: aries
        console.log(horoList); //outputs: Object {aries: Object, cancer: Object, gemini: Object}
        console.log(horoList.aries); //ouputs: Object {title: "JerkFace"}
        console.log(horoList['selectedHoro']); //outputs: undefined
        // this.setState({
        //  horos: horoList.selectedHoro
        // });
    },