こんにちは:)私はwpの残りのAPIと反応してjsと私は正常にwp残りのAPIからデータを取得し、適切な方法でデータを反応させる。コンソールに「配列またはイテレータ内の各子に固有の」キー「prop」が必要ですというエラーメッセージが表示されます。私はこの問題に関する反応の文書を読んだが、理解しなかった。ここまでは私がこれまでに書いたものです。すべてのヘルプ素晴らしいことだどのように適切に反復するWp残りのAPIを介して検索されたポストオブジェクトの配列を介して反応するjs
class Home extends React.Component{
componentDidMount(){
const API_URL = 'http://localhost/wordpress/wp-json/wp/v2/posts/';
this.serverRequest = $.get(API_URL, function (result) {
this.setState({
result:result,
loaded:true
});
}.bind(this));
}
constructor(props) {
super(props);
this.state ={result:null,loaded:false};
autoBind(this);
}
render(){
if (this.state.loaded) {
return(
<div>
{this.state.result && <Portfolio data = {this.state.result}/>}
</div>
)
}
return(
<div>loading...
</div>
)
}
}
export default Home;
あなたに感謝し、データを支える先のポートフォリオのコンポーネントが渡され、適切な方法
class Portfolio extends React.Component{
constructor(props) {
super(props);
autoBind(this);
}
render(){
var contents=[];
for (var i = 0; i < this.props.data.length; i++) {
if (this.props.data[i].categories[0] == 5) {
var productImage ={
backgroundImage:'url('+ this.props.data[i].featured_image + ')',
backgroundSize: '100% 100%'
}
contents.push(
<div id="portfolio-product-item" style ={productImage} >
<div id ="portfolio-product-item-details" >
<h3>{this.props.data[i].slug}</h3>
<div dangerouslySetInnerHTML={{__html: this.props.data[i].content.rendered}} />
</div>
</div>
);
}
}
return(
<section className="portfolio">
{contents}
</section>
)
}
}
export default Portfolio;
ありがとうございます:)これはたくさんのクリーナーコードです。私は反応の初心者ですが、ポートフォリオコンポーネントのレンダリング部分でif文がnullを返し、何も表示されず、ユニークな "キー"小道具のエラーですこれらの問題に対処できますか? –
データがない場合、何を表示しますか? map関数でパラメータ "index"を追加することで "key"の問題を解決できます:) map関数の働きを見てくださいhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map – JoseAPL
私は答えを更新しました。 – JoseAPL