Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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 如何在贴图函数中处理多个参照_Javascript_Reactjs - Fatal编程技术网

Javascript 如何在贴图函数中处理多个参照

Javascript 如何在贴图函数中处理多个参照,javascript,reactjs,Javascript,Reactjs,我需要针对map函数中的所有组件,但我只获取其中的最后一个组件 products?.map((product, i) => ( <div key={product.id} className="product__card" onMouseEnter={() => sliderRef.current.slickNext()}

我需要针对map函数中的所有组件,但我只获取其中的最后一个组件

products?.map((product, i) => (
            <div
              key={product.id}
              className="product__card"
              onMouseEnter={() => sliderRef.current.slickNext()}
              onMouseLeave={() => sliderRef.current.slickPause()}
            >
              <StyledSlider {...settings} ref={sliderRef}>
                {product.assets.map(({ url, id, filename }) => (
                  <div className="product__image__container" key={id}>
                    <img src={url} alt={filename} />
                  </div>
                ))}
              </StyledSlider>
              <div className="product__content__container">
                <h3 className="slim__heading">{valueChopper(product.name, 23)}</h3>
                <p contentEditable="true" dangerouslySetInnerHTML={{ __html: valueChopper(product.description, 30) }} />
                <h6 className="slim__heading">Rs. {product.price.formatted}</h6>
              </div>
            </div>
          )
products?.map((产品,i)=>(
sliderRef.current.slickNext()}
onMouseLeave={()=>sliderRef.current.slickPause()}
>
{product.assets.map({url,id,filename})=>(
))}
{valueChopper(product.name,23)}

Rs.{product.price.formatted} )


最简单的方法是使用一个
ref
以多个元素为目标。请参见下面的示例。我已修改了您的代码以使其正常工作

const sliderRef = useRef([]);

products?.map((product, i) => (
  <div
    key={product.id}
    className="product__card"
    onMouseEnter={() => sliderRef.current[i].slickNext()}
    onMouseLeave={() => sliderRef.current[i].slickPause()}
  >
    <StyledSlider {...settings} ref={el => sliderRef.current[i] = el}>
      {product.assets.map(({ url, id, filename }) => (
        <div className="product__image__container" key={id}>
          <img src={url} alt={filename} />
        </div>
    ))}
    </StyledSlider>
    <div className="product__content__container">
      <h3 className="slim__heading">{valueChopper(product.name, 23)}</h3>
      <p contentEditable="true" dangerouslySetInnerHTML={{ __html:valueChopper(product.description, 30) }} />
      <h6 className="slim__heading">Rs. {product.price.formatted}</h6>
    </div>
  </div>
)
常量sliderRef=useRef([]); 产品?.map((产品,i)=>( sliderRef.current[i].slickNext()} onMouseLeave={()=>sliderRef.current[i].slickPause()} > sliderRef.current[i]=el}> {product.assets.map({url,id,filename})=>( ))} {valueChopper(product.name,23)}

Rs.{product.price.formatted} )


这是否回答了您的问题?