Я новичок в веб-разработке и в рамках проекта создал Django приложение React Redux. У frontentd есть компонент с записью формы - при отправке формы компонент вызывает действие, которое отправляет запрос ax ios в скрипт сканера Twitter python в серверной части. Скрипт возвращает ответ, содержащий массив строк (твиты находятся внутри массива). Затем я пытаюсь отправить массив, содержащийся в response.data, в качестве полезной нагрузки для редуктора. Тем не менее, я получаю сообщение об ошибке, в котором говорится, что полезная нагрузка того, что я отправил, не определена.
Это оператор возврата вызываемого метода python - корпус представляет собой строковый массив.
return JsonResponse({"results:": corpus})
Это код действия, отправляющего запрос GET методу python. Затем возвращается строковый массив внутри объекта json.
// GET_TWEETS - get list of tweets from hashtag search
export const getTweets = (hashtag) => dispatch => {
axios
.get('http://localhost:8000/twitter_search', {
params: {text: hashtag}
})
.then(res => {
console.log(res.data); //check if python method returns corpus of tweets
//const results = Array.from(res.data.results);
dispatch({
type: GET_TWEET,
payload: res.data.results
});
})
.catch(err => console.log(err));
}
Журнал консоли показывает, что объект успешно возвращен из сценария python. консольный журнал
Это код моего редуктора. Я хочу, чтобы мое действие содержало строковый массив, а затем назначил этот строковый массив «твитам» в состоянии, чтобы я мог вернуть его компоненту, а затем получить доступ к массиву из компонента и затем отобразить содержимое массива твитов этогоx на Интерфейс
import { GET_TWEET } from '../actions/types';
const initialState = {
tweets: []
}
export default function(state = initialState, action) {
console.log(action.payload)
switch(action.type) {
case GET_TWEET:
return {
...state,
tweets: [...action.payload]
}
default:
return state;
}
}
Кроме того, это часть кода для компонента, который я хочу получить массив строк, надеюсь, я правильно настроил эту часть:
export class Tweets extends Component {
static propTypes = {
tweets: PropTypes.array.isRequired,
getTweets: PropTypes.func.isRequired
}
...
const mapStateToProps = state => ({
tweets: state.TweetsReducer.tweets
});
export default connect(mapStateToProps, { getTweets })(Tweets);
Вот ошибка, которую я получаю из консоли. Регистрация в консоли полезной нагрузки действия также показывает, что его значение не определено: неопределенная ошибка
Я пытался решить эту проблему уже несколько дней, но полностью потерян, и у меня есть догадаться, решение этого довольно просто ...