Ich bin neu in React und Redux und versuche, Posts aus der WordPress-REST-API zu laden und sie in meiner React App anzuzeigen.So zeigen Sie geladene Posts mit React und Redux an
Ich benutze dies als Beispiel: https://github.com/jackreichert/a-wp-react-redux-theme
Meine Aktion die Pfosten so aussehen zu bekommen:
import axios from 'axios';
export const FETCH_POSTS = 'FETCH_POSTS';
export function fetchPosts(post_type = 'posts') {
return function (dispatch) {
axios.get(`http://localhost:8080/wp-json/wp/v2/${post_type}`)
.then(response => {
dispatch({
type: FETCH_POSTS,
payload: response.data
});
});
}
}
Es ist auf die Reduzierung übergeben, die wie folgt aussieht:
import { FETCH_POSTS } from '../actions';
export default (state = [], action) => {
switch (action.type) {
case FETCH_POSTS:
return action.payload;
default :
state = '';
break;
}
return state;
}
Und (obwohl es nur ein Reduzierer ist) kombiniere ich es, weil es mehr Reduzierer zu folgen gibt (genau wie im Beispiel), und dann ich es speichern werde. Genauso wie das Beispiel.
Im Laden alles in meiner Home.jsx
-Datei, die jetzt wie dieses Recht aussieht:
import React, { Component } from 'react';
import {connect} from 'react-redux';
import { Link } from 'react-router-dom';
import Header from '../Header';
import {fetchPosts} from '../../actions/';
class Home extends Component{
componentDidMount(){
document.title = 'Test';
}
componentWillMount() {
this.getPosts(this.props, true);
}
componentWillReceiveProps(nextProps) {
this.getPosts(nextProps);
}
getPosts(props, willMount = false) {
if (willMount) {
this.props.fetchPosts();
}
}
render() {
return(
<div>
<Header/>
<main>
<h1>Home</h1>
</main>
</div>
)
}
}
function mapStateToProps({posts}) {
return {posts};
}
export default connect(mapStateToProps, {fetchPosts})(Home);
Ich glaube, mein Code oben rechts ist. Redux kann auch ‚finden‘ meine Beiträge und Protokolle in meiner Konsole:
action FETCH_POSTS @ 11:11:56.393
prev state Object {posts: ""}
action Object {type: "FETCH_POSTS", payload: Array(2)}
next state Object {posts: Array(2)}
Jetzt möchte ich wissen: Wie kann ich einfach die Beiträge angezeigt werden, die von Redux geladen werden, in meiner Home.jsx Datei. Und danach: Wie kann ich die Route und die Daten konfigurieren, um zu einem einzigen Beitrag zu gehen (aber das wird später kommen, für jetzt möchte ich nur eine einfache, aber richtige Weise wissen, wie die Beiträge anzuzeigen)
Das ist hilfreich, funktioniert aber leider nicht .. Ich habe meine Frage aktualisiert. Ich hoffe du verstehst wie ich es erklärt habe, hahahaha – coder14
NEVERMIND! Es funktioniert! – coder14
Vielleicht wäre es das Beste für Sie, Ihre Frage zu bearbeiten, indem Sie unten einen Kontext hinzufügen, um zu erklären, dass es funktioniert, zusammen mit Ihren Änderungen und/oder anderen Lösungen, die Ihnen geholfen haben. –