- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 reactjs 中使用 redux 从 GitHub 的 API 获取存储库列表,但出现此错误:
./src/components/layouts/page/index.js Line 14: Parsing error: Unexpected token
function mapDispatchToProps(dispatch) {
^
return {
fetchRepos: function() {
dispatch(fetchRepos());
这些是我的文件:
actions.js
export function fetchRepos() {
return function(dispatch) {
dispatch({
type: 'FETCH_REPOS_REQUEST'
});
return fetch('curl https://api.github.com/search/repositories?q=sort=stars&order=desc')
.then(response => response.json().then(body => ({ response, body })))
.then(({ response, body }) => {
if (!response.ok) {
dispatch({
type: 'FETCH_REPOS_FAILURE',
error: body.error
});
} else {
dispatch({
type: 'FETCH_REPOS_SUCCESS',
repos: body.repos
});
}
}
);
}
}
app.js
import React from 'react';
import './App.css';
import Page from './components/layouts/page/index';
import { Provider } from 'react-redux'
import { createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import rootReducer from './reducers/index';
const store = createStore(
rootReducer,
applyMiddleware(thunk)
);
function App() {
return (
<Provider store={store}>
<Page />
</Provider>
);
}
export default App;
reducers/index.js
import { combineReducers } from 'redux';
import repos from './reducers';
const rootReducer = combineReducers({
repos,
});
export default rootReducer;
reducers/reducers.js
import { combineReducers } from 'redux';
const INITIAL_STATE = {
items: [],
isFetching: false,
error: undefined
};
function reposReducer(state = INITIAL_STATE, action) {
switch (action.type) {
case 'FETCH_REPOS_REQUEST':
return Object.assign({}, state, {
isFetching: true
});
case 'FETCH_REPOS_SUCCESS':
return Object.assign({}, state, {
isFetching: false,
repos: action.repos
});
case 'FETCH_REPOS_FAILURE':
return Object.assign({}, state, {
isFetching: false,
error: action.error
});
default:
return state;
}
}
export default combineReducers({
repos: reposReducer
});
Page.js
import React, { Component } from 'react';
import List from '../list/index.js';
import { connect } from 'react-redux';
import { fetchRepos } from '../../../actions/actions';
import './page.scss';
class Page extends Component {
componentDidMount() {
this.props.fetchRepos();
}
function mapDispatchToProps(dispatch) {
return {
fetchRepos: function() {
dispatch(fetchRepos());
}
};
}
function mapStateToProps(state) {
return {
repos: state.repos
};
}
render() {
return <List items={this.props.repos}/>
}
}
export default connect(mapStateToProps, mapDispatchToProps)(Page);
最佳答案
您的 mapDispatchToProps
和 mapStateToProps
需要在您的组件之外定义,以便被 connect
使用:
class Page extends Component {
componentDidMount() {
this.props.fetchRepos();
}
render() {
const { repos } = this.props;
return <List items={repos} />;
}
}
const mapDispatchToProps = dispatch => ({
fetchRepos: () => dispatch(fetchRepos())
});
const mapStateToProps = state => ({
repos: state.repos
});
export default connect(
mapStateToProps,
mapDispatchToProps
)(Page);
有关更多信息,请参阅 this .
关于javascript - 调用 API 时 redux 函数 mapDispatchToProps 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57330431/
在学习 React-Redux 时,我偶然发现了以下代码,我不确定以下两行和使用 mapDispatchToProps 之间有什么区别? let { dispatch, actions } =
我有: const mapDispatchToProps = dispatch => ( { slipsRadioClickHandler: (value) => { disp
Error: Actions must be plain objects. Use custom middleware for async actions. 我试图在 mapDispatchToPro
我想对 mapDispatchToProps 使用速记符号,但是当我替换老式的 bindActionCreators 策略时 function mapDispatchToProps(dispatch:
假设一个无状态的功能性 UserProfile 组件显示给定 url 的用户数据。假设它被 connect(mapStateToProps, mapDispatchToProps)(UserProfi
在我的index.js中addCoin行动正在发挥作用。 import { addCoin } from './reducer/portfolio/actions' const element = d
我是 redux 的新手,遇到了 mapDispatchToProps 的问题, 我的 react 应用程序中有一个具有不同 div 的组件,每次用户单击 div 时,它都应该通过参数更改所选颜色,然
我有一个看似微不足道的问题,但我一生都无法弄清楚。 FooContainer.tsx ... public render() { ... this.props.onSubmit(123) //
这个问题已经有答案了: What is mapDispatchToProps? (6 个回答) 已关闭 4 年前。 mapStateToProps 之间有什么区别 和 mapDispatchToPro
我已经使用 redux 编写了一个容器组件,我的 mapDispatchToProps 实现如下所示 const mapDispatchToProps = (dispatch, ownProps) =
我对 mapDispatchToProps 有疑问。如何使用按钮中的 onClick 从 mapDispatchToProps “触发”操作? - 登录表单.js。我知道,我还有很多东西要学 :D c
我希望能够在发送参数的同时访问 mapDispatchToProps 中的事件对象。你如何看待这件事? 这是我目前所拥有的: const mapDispatchToProps = dispatch =
父组件 const myParentComponent = ({ sourceValue, classes, doStuff }) => { return (
人们似乎总是在他们需要的每个组件的底部定义这些函数,这是有原因的吗? 当我创建一个 react/redux 项目时,我将它们放在 /mappingFunctions 目录中,然后将它们导入到我需要它们
我不明白的是,在这个柯里化(Currying)风格声明中,为什么调度输入是第二个? connect 不是以 dispatch 作为输入调用这个函数,然后将返回值赋给 props 吗?所以返回值应该是获
我很难理解 mapDispatchToProps 这里使用了一个 mapDispatchToProps 函数 const mapDispatchToProps = () => { return {
我能看懂下面的示例代码: const mapStateToProps = state => { return { todo: state.todos[0] } } const mapD
我正在将 React 与 Redux 结合使用并遵循教程,但我终究无法找出这个错误。 Uncaught TypeError: this.props.fetchPosts is not a functi
请告诉我,为什么当我调用 this.props.getOnEvents() 时,会出现“getOnEvents() is not a function”的错误,这里出了什么问题,如何修复?我正在查看c
所以我的应用程序中有这个简化的结构: 在组件中我有: handlePageClick(data) { this.props.onChangePage(data.selected
我是一名优秀的程序员,十分优秀!