我有一个使用redux的应用程序
我也曾在本地获取数据。
return fetch("https://dog.ceo/api/breeds/image/random").then(res => res.json());
在我的反应组件中,我使用useSelector
来获取数据。但我什么也没得到。
useEffect(() => {
console.log(selector.data); // here i should get data
}, []);
如何在我的组件中获取数据?
演示:https://codesandbox.io/s/nervous-rosalind-lp16j?file=/src/App.js:242-328
我能够将数据提取到您的应用程序组件中。我必须做一点重构才能做到这一点。
//index.js
import React from "react";
import ReactDOM from "react-dom";
import createSagaMiddleware from "redux-saga";
import { createStore, applyMiddleware } from "redux";
import reducer from "./saga/reducers";
import rootSaga from "./saga/saga";
import { Provider } from "react-redux";
import App from "./App";
const sagaMiddleware = createSagaMiddleware();
const store = createStore(reducer, applyMiddleware(sagaMiddleware));
sagaMiddleware.run(rootSaga);
const rootElement = document.getElementById("root");
ReactDOM.render(
<Provider store={store}>
<React.StrictMode>
<App />
</React.StrictMode>
</Provider>,
rootElement
);
//sagas/actions.js
export const fetchDogs = () => ({
type: "FETCH_DOGS"
});
//sagas/reducers.js
const reducer = (state = {}, action) => {
switch (action.type) {
case "FETCH_DOGS":
return { ...state, loading: true };
case "DOGS_RECIEVED":
return { ...state, dogs: action.data, loading: false };
default:
return state;
}
};
export default reducer;
//sagas/saga.js
import { put, takeLatest, all } from "redux-saga/effects";
function* actionWatcher() {
yield takeLatest("FETCH_DOGS", fetchDataAsync);
}
function* fetchDataAsync() {
try {
const json = yield fetch("https://dog.ceo/api/breeds/image/random").then(
response => response.json()
);
console.log(json);
yield put({ type: "DOGS_RECIEVED", data: json.message });
} catch (error) {
console.log(error);
}
}
export default function* rootSaga() {
yield all([actionWatcher()]);
}
//App.js
import React, { useEffect } from "react";
import "./styles.css";
import { fetchDogs } from "./saga/actions";
import { useDispatch, useSelector } from "react-redux";
export default function App() {
const dogs = useSelector(state => state.dogs);
const loading = useSelector(state => state.loading);
const dispatch = useDispatch();
useEffect(() => {
dispatch(fetchDogs());
}, []);
if (loading) {
return "Loading...";
}
console.log(dogs);
return (
<div className="App">
<h1>Dogs</h1>
<img src={dogs} alt="new" />
</div>
);
}
这里有一个指向沙盒的链接。
我刚到Angular 2还在学习,我正在尝试用get调用击一个URL,但get似乎不通过,即使在浏览器的网络中,我也找不到被调用的get URL。 程序将转到方法控制台,在get调用的上下记录日志,但不记录get调用的日志 我的服务方式
我制作了一个自定义方法,该方法应用@Query注释以从 SQL 数据库中提取数据。该方法使用字符串和可分页作为参数。该 Pageable 包含我的分页信息,例如请求的页面、出现次数限制、排序方向和属性。 每当我的 Pageable 传递属性名称进行排序时,Hibernate 都会使用相同的名称在 DB 上查找列,即使我在模型上注释了另一个列名。我在示例查询或派生方法实现方面没有遇到此问题。 我已经
问题内容: 在执行此代码时,我在第81行上收到了java.lang.UnsupportedOperationException。我知道发布整个代码违反了赌注的做法,但是我认为除非发布整个代码,否则传达我正在做的事情将非常困难。 基本上,我想从列表中删除所有出现的元素,所以我正在做List.removeAll(Collection)。我不明白在81号线上我在做什么错。谢谢您的帮助! 输出/ Stac
数据库帮助程序
我试图创建一个chatbot,它向spring-boot应用程序发出get请求,而spring boot应用程序向Dialogflow V2发出API调用。我试图通过GRPC访问Dialogflow V2 API。我已经创建了一个服务帐户和导出服务帐户密钥文件,并将其添加到spring-boot应用程序中。 当我试图从spring-boot应用程序向dialogflow发送请求时,我出现了以下错误
问题内容: 我试图连接到在WebSphere上运行的Java应用程序内的Oracle数据库。我需要能够创建一个数组描述符以在对过程的调用中使用。 代码如下: 调用的行引发类强制转换异常 通过调试器进行遍历,可以肯定是一个。问题是我实际上不能在我的代码中引用该类,因为该类不是公共的,所以我不能只做这样的事情: 。 还有这个: 还返回类强制转换异常: 我需要有一个对象,但似乎无法从返回给我的对象中得到