내 소품 내에서 데이터에 액세스하려고 할 때이 오류가 계속 발생합니다.React Redux : 정의되지 않은 '0'속성을 읽을 수 없습니다.
그래서 같은 @connect 데코레이터를 사용하는 소품에 상태를 매핑 해요 : 내가 this.props를 로그인 할 때
@connect((store) => {
return {
listAdProductsData: store.listAdProductsData.data,
foxFooterData: store.foxFooterData.data
}
})
는 그러나, 나는 소품의 세 개의 인스턴스를 얻을. 두 개는로드시 채워지지 않으며 세 번째는 최종적으로 데이터로 채워집니다.
어떻게이 문제를 해결할 수 있습니까?
getData(prop) {
if (prop.data === undefined) {
return [{}];
}
return prop.data;
}
나는 또한 데이터를 가져올 componentWillMount 내에서 디스패치 기능을 가지고 : 내가 지금까지 찾은 유일한 방법은 "바보"는 데이터가 너무 같은 개체의 빈 배열이 있는지 확인하는 것입니다 - 이렇게하는 데 문제가 있습니까? :
componentWillMount() {
//Fetch Ad Products Data
this.props.dispatch(fetchAdProductsData())
//Fetch List Ad Products Data
this.props.dispatch(fetchListAdProductData())
//Fetch Fox Footer Data
this.props.dispatch(fetchFoxFooterData());
}
JSON 데이터 :
import React from 'react';
import HeroVideo from '../../../assets/videos/HERO_Landing.mp4';
import styles from './styles.css';
export default class HeroModule extends React.Component {
render() {
let data = this.props.data[0];
console.log("PROPS", data);
console.log("Get data", data.productData[0].adProductsHeading);
return (
<div className="hero-wrap col-xs-12 no-padding">
<div className="video-container">
<video width="100%" height="auto" autoPlay loop muted className="fillWidth">
<source src={HeroVideo} type='video/webm' />
<source src={HeroVideo} type='video/mp4' />
Your browser does not support HTML5 video. Please upgrade your browser!
</video>
</div>
<div className="hero">
<div className="hero-header-wrap">
<div className="hero-header">
<h1></h1>
<h2>The big picture?</h2>
<button className="btn">Watch Video</button>
</div>
</div>
</div>
</div>
)
}
}
구성 요소의 전체 코드를 추가 할 수 있습니까? 도움이 될 것입니다 –
@AbdellahAlaoui 업데이트보기 – Filth
다음 링크가 있습니다 : https://stackoverflow.com/questions/47040303/react-redux-why-are-props-populated-on-third-time-load – yorah