在[https://jscomplete.com/repl/]

我试图在在[https://jscomplete.com/repl/]

https://codepen.io/stowball/post/a-dummy-s-guide-to-redux-and-thunk-in-react#understanding-redux-4

运行从教程中的代码使用[终极版连接]上

https://jscomplete.com/repl/

,但执行与下面的错误而失败:

ReferenceError: connect is not defined 

我尝试使用import语句在文件的顶部:

import { connect } from 'react-redux'; 

但它没有帮助解决错误。

是否有我的方式了解一些错误jscomplete作品做任何解释,将有助于 TIA

更新:粘贴的要求代码:

import { connect } from 'react-redux'; 

class ItemList extends React.Component {

componentDidMount() {

this.props.fetchData('https://5826ed963900d612000138bd.mockapi.io/items');

}

render() {

if (this.props.hasErrored) {

return <p>Sorry! There was an error loading the items</p>;

}

if (this.props.isLoading) {

return <p>Loading…</p>;

}

return (

<ul>

{this.props.items.map((item) => (

<li key={item.id}>

{item.label}

</li>

))}

</ul>

);

}

}

const mapStateToProps = (state) => {

return {

items: state.items,

hasErrored: state.itemsHasErrored,

isLoading: state.itemsIsLoading

};

};

const mapDispatchToProps = (dispatch) => {

return {

fetchData: (url) => dispatch(itemsFetchData(url))

};

};

connect(mapStateToProps, mapDispatchToProps)(ItemList)

function itemsHasErrored(bool) {

return {

type: 'ITEMS_HAS_ERRORED',

hasErrored: bool

};

}

function itemsIsLoading(bool) {

return {

type: 'ITEMS_IS_LOADING',

isLoading: bool

};

}

function itemsFetchDataSuccess(items) {

return {

type: 'ITEMS_FETCH_DATA_SUCCESS',

items

};

}

function itemsFetchData(url) {

return (dispatch) => {

dispatch(itemsIsLoading(true));

fetch(url)

.then((response) => {

if (!response.ok) {

throw Error(response.statusText);

}

dispatch(itemsIsLoading(false));

return response;

})

.then((response) => response.json())

.then((items) => dispatch(itemsFetchDataSuccess(items)))

.catch(() => dispatch(itemsHasErrored(true)));

};

}

function itemsHasErrored(state = false, action) {

switch (action.type) {

case 'ITEMS_HAS_ERRORED':

return action.hasErrored;

default:

return state;

}

}

function itemsIsLoading(state = false, action) {

switch (action.type) {

case 'ITEMS_IS_LOADING':

return action.isLoading;

default:

return state;

}

}

function items(state = [], action) {

switch (action.type) {

case 'ITEMS_FETCH_DATA_SUCCESS':

return action.items;

default:

return state;

}

}

combineReducers({

items,

itemsHasErrored,

itemsIsLoading

});

function configureStore(initialState) {

return createStore(

rootReducer,

initialState,

applyMiddleware(thunk)

);

}

const store = configureStore(); // You can also pass in an initialState here

render(

<Provider store={store}>

<ItemList />

</Provider>,

document.getElementById('app')

);

ReactDOM.render(<ItemList/>,mountNode)

回答:

这是由于几个问题。首先,您需要设置Babel transpiler及其配置以便处理ES6 import报表。

似乎像jscomplete.com(和jsFiddle)不完全支持这一点。

在代码中存在一些问题,例如引用未声明的变量(例如:mountNode),但主要问题是jsComplete.com不理解导入语句。

你将有更好的运气运行在VS代码或类似的编辑器的计算机上运行此代码。

请注意create-react-app它在开发反应应用程序时为您解决了所有这些开发环境。

以上是 在[https://jscomplete.com/repl/] 的全部内容, 来源链接: utcz.com/qa/261343.html

回到顶部