我开始学习 Redux 并且整个想法看起来很整洁,但是在将我的 React 应用程序从“普通”重建为“redux-way”之后,这个问题出现了。
我有一个基于异步调用的 JSON 构建的 if 项目列表。然后该列表中的每个项目都会在点击时发送一个异步调用并返回一些内容。
在我的应用程序非常简单之前:
components/list/List.jsx
components/list/ListItem.jsx
现在它看起来像这样:
footer/list/ListContainer.jsx // here I run an async call and generate list
footer/list/List.jsx // dumb component creating the whole list full of ListItemContainer components as <li>
footer/list/ListItemContainer.jsx // here I run another async for each <li>
footer/list/ListItem.jsx // dumb component containing <li>
IMO 要复杂得多,但还有另一个问题。
每次我点击我的<li>
组件时我都想触发一个动作然后做一些事情,我的问题是:我可以在 ListItem.jsx 中做到这一点吗?我不这么认为,因为它是一个愚蠢的组件?
这是我现在的 ListItem.jsx:
import React from 'react';
import { connect } from 'react-redux';
// some other imports
class ListItem extends React.Component {
render(props) {
return (
<li>
<a href="#" onClick={//can I do something here?//}>
{this.props.contents}
</a>
</li>
)
}
}
export default ListItem;