Javascript 当我有两个内部循环时,无法获取此属性的父属性

Javascript 当我有两个内部循环时,无法获取此属性的父属性,javascript,reactjs,react-jsx,Javascript,Reactjs,React Jsx,我有一个复杂的情况,我真的很困惑如何处理它。 我有一个数组,如下所示: stories=[ { "categ": "politics", "arr": [{ "t": 1 }, { "t": 2 }, { "t": 3 }] }, { "categ": "Business", "arr":

我有一个复杂的情况,我真的很困惑如何处理它。 我有一个数组,如下所示:

stories=[
    {
        "categ": "politics",
        "arr": [{
            "t": 1
        }, {
            "t": 2
        }, {
            "t": 3
        }]
    }, 
    {
        "categ": "Business",
        "arr": [{
            "t": 1
        }, {
            "t": 2
        }, {
            "t": 3
        }]
    }
]
正如您所看到的,这个数组中有另一个数组,根据执行的内容,我需要遍历第一个数组,并在第一个数组中找到合适的数组。例如,如果我想获得与业务类别相关的数组,我需要循环第一个数组并选择与业务相关的数组。为此,我有以下代码:

<div className="row">
                {
                    this.props.stories.map((item,i)=> <Story key={i}   position={i} story={item} ></Story>)

                }
            </div>
但是在上面的代码中,“政治”是硬编码的,应该用this.props.categ替换。然而,一旦我替换了它,我就会得到一个错误

未捕获的TypeError:无法读取未定义的属性“props”


这完全有道理,因为我失去了父母,因为我没有使用es6脂肪箭头。现在,如何使这项功能正常工作?

在进入该功能之前,将
保存到

然后使用
that.props.categ
引用外部
this

如果这有意义的话:D

大概是这样的:

render(){
    // place here
    // at the top of render function
    // but outside the return
    var that = this;

    return (
        {something.map(function(snippet){
           if (snippet.categ === that.props.categ){
               // do things here
           }
        })}
    );

}

在进入该功能之前,将
保存到

然后使用
that.props.categ
引用外部
this

如果这有意义的话:D

大概是这样的:

render(){
    // place here
    // at the top of render function
    // but outside the return
    var that = this;

    return (
        {something.map(function(snippet){
           if (snippet.categ === that.props.categ){
               // do things here
           }
        })}
    );

}

您可以像这样绑定外部映射函数

 <div className="row" >
            {

             this.props.stories.map(function(snippet){
                 if(snippet.categ===this.props.categ){
                 return(
                     {snippet.arr.map((item,i)=> <Story key={i} position={i} story={item} ></Story>})


                 );

                 }
             }.bind(this))
            }
        </div>

您可以像这样绑定外部映射函数

 <div className="row" >
            {

             this.props.stories.map(function(snippet){
                 if(snippet.categ===this.props.categ){
                 return(
                     {snippet.arr.map((item,i)=> <Story key={i} position={i} story={item} ></Story>})


                 );

                 }
             }.bind(this))
            }
        </div>


我有一个数组,如下所示
它的语法无效,所以你什么都没担心我会修好我的arry@JaromandaX在我的实际项目中,我使用的是正确的数组,但我想让它变得简单,所以将上面的数组作为example@JaromandaX它现在已修复,数组格式正确
我有一个数组,如下所示
这是无效语法,所以你什么都没担心我会修好我的arry@JaromandaX在我的实际项目中,我使用的是正确的数组,但我想让它变得简单,所以将上面的数组作为example@JaromandaX现在它已修复,数组的格式正确。谢谢我尝试过了,但在我的场景中这是不可能的,因为当我执行上述操作时,我正在渲染中编译错误请更新您的答案以包含更多的渲染函数,我相信我可以提供帮助:Dthanks我尝试过,但在我的场景中这是不可能的,因为我在渲染中,当我执行上述操作时,我得到编译错误请更新您的答案以包含更多的渲染函数,我相信我可以提供帮助:Dthanks但当我这样做时,我会获取此错误:bundle.js:41014未捕获类型错误:this.props.stories.map(…).bind不是一个函数,它应该可以工作。另一种方法是使用箭头功能检查更新。您忘记了,
{}
对于Inner贴图功能,它会影响速度吗?在这样做之后,我的应用程序非常慢?不,它不会影响速度,问题可能在其他地方。谢谢,但当我这样做时,我会得到以下错误:bundle.js:41014 Uncaught TypeError:this.props.stories.map(…)。绑定不是一个应该工作的函数。另一种方法是使用箭头功能检查更新。您忘记了,
{}
对于Inner贴图功能,它会影响速度吗?这样做后,我的应用程序非常慢?不,这不会影响速度,问题可能出在其他地方