- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 React-Redux 时遇到了一些困难。我看了 3 遍 Dan Abramovs 对 redux 的介绍,接着是那些时候的编码 1,阅读了 Redux 文档两次,并分别浏览了 freeCodeCamp 的 React 和 Redux 部分 3 遍,但我似乎无法全神贯注它。我掌握了最基本的知识,但是当它开始变得越来越复杂时,我就迷路了。我决定尝试构建 Markdown 预览器挑战,看看我是否可以边学边学,但我无法在更新编辑器字段时更新预览字段。这是我到目前为止所拥有的,我可以让它显示基本的 HTML,比如“这是标题”,一个文本框,上面写着“这是编辑器”和类似的基本内容,但现在下一步我正在努力正在让编辑器字段动态更新预览字段。当我开始尝试这样做时,一切都变成了空白,控制台也不再给我任何反馈。
const { Component } = React;
const { Provider, connect } = ReactRedux;
const previewReducer = (
state='DEFAULT_STATE',
action
) = {
};
const Header = () => (
<p> This is the header </p>
);
const Editor = () => (
<textarea id='editor' value={this.props.data.value}
onChange={event => previewReducer(event)} />
);
const Previewer = () => (
<p id='preview'> This is the Previewer </p>
);
const Footer = () => (
<p> This is the Footer </p>
);
const MarkDownApp = () => (
<div>
<Header />
<Editor />
<Previewer />
<Footer />
</div>
);
const { createStore } = Redux;
ReactDOM.render(
<Provider store={createStore(markDownApp)}>
<MarkDownApp />
</Provider>,
document.getElementById('root')
);
我很清楚我现在拥有的东西不应该工作,但我不知道为什么或如何解决它。我不太确定我应该用我的 reducer 做什么,这就是为什么它是空的。
最佳答案
您直接从 onChange 属性调用缩减器。相反,您应该在 store 中注册 reducer,并在 store 上发送一个 action,这反过来将使用 reducer 来更新 store 中的状态。
您可能不想将原始事件传递给分派(dispatch),但像这样的事情可能会起作用;
onChange={event => store.dispatch({ type: 'SOURCE_CHANGED', event: event })}
reducer 注册;
const store = createStore(previewReducer);
现在要处理 reducer 中的 Action ;
const previewReducer = (state = {}, action) => {
if (action.type === 'SOURCE_CHANGED') {
return { source: action.event.target.value };
}
return state;
}
在此之后,您必须“连接”需要使用此源的组件。
但很抱歉,您显然还不了解 redux 的工作原理,因此我建议您查看更多入门教程。
关于javascript - 我正在尝试在 codepen 中构建一个 React-Redux 'Markdown Previewer',但是我在弄清楚应该做什么时遇到了很多麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51236150/
我一直在试图理解人们一直在使用的这个网格系统。有时让我觉得自己很蠢。 我了解如果您使用无边距的 12 网格系统。第 12 列将是 100%,而第 1 列将约为 8.33333%。 我一直在看一些网格系
我们被分配了一个用于系统编程的 ASCII 压缩项目,但我在代码中的某一特定行上遇到了困难。 我问了question关于压缩,在处理完纸上示例文件的前十几个字母后,我将数组代码调整到了我的程序中。在
我正在使用 Appcelerator 框架编写应用程序,但偶尔会发生崩溃。我正在尝试找出导致崩溃的原因,因此我决定查看 iOS 模拟器崩溃报告。当然,这对我来说都是希腊语,但我希望得到一些指导,了解其
有人可以给我一些指导或指导我阅读有关 C++ set 对象的优秀教程吗? 我有一段这样的简单代码: #include using namespace std; int main() { ch
老实说,我不知道我的问题是否有解决方案,但我想在 Swift 中捕捉上下文切换发生的时间。 我正在想象一个需要很长时间才能完成的功能,例如远程服务器上的写操作,我在想是否有办法了解何时(至少在哪一行)
我正在使用 Yii2 并且一直在阅读 theming和 theme inheritance ;但是有一些问题: 考虑以下示例: 'view' => [ 'theme' => [
我尝试使用 AJAX 发布,因为我不想使用提交按钮并在每次单击它时重新加载页面。我正在使用此代码进行 ajax: Ajax loading error, please try again.").sho
我正在尝试找出将在 NodeJS 应用程序中使用的 MongoDB 模型的理想设计。该应用程序的设置类似于调查,某些步骤会根据之前的选择提供选项。这是选择和可能性的示例。 第 1 级:图案类型:纯色、
我有一个 API/Express 路由器: router.post("/signup", async function (req, res) { try { var user
我注意到 JFileChooser 隐藏了 Windows 系统文件。 hiberfil.sys、pagefile.sys、$Recycle.Bin 等文件、一些无法打开的快捷方式文件夹等... 我可
这是我第一次使用 Django,到目前为止,我对这个框架的工作方式印象深刻。我目前正在开发我的第一个应用程序,并正在处理数据库内容,但是,我在弄清楚如何在不运行原始查询的情况下进行内部联接时遇到问题。
我在自动调整蒙版大小方面遇到了一些问题。这是交易:我正在使用最近发布的 TwUI ,它从 UIKit 中获取了很多,但它在 Mac 上。这就是我为 iOS 和 Mac 标记的原因。因此,我创建了一个底
好吧,这是一个很长的,打起精神来! :) 最近我尝试在启动期间启动一个用 bash 编写的看门狗脚本。所以我在 rc.local 中添加了一行,其中包含以下内容: su someuser -c "/h
我在我的机器上安装了多个版本的 Windows 软件开发工具包,有趣的是,我的机器上已经安装了一个 Visual studio Installer工具的版本低于近一年前安装的版本: Windows S
widget('zii.widgets.CMenu', array( 'items'=>array( array('label'=>'Home', '
我是一名优秀的程序员,十分优秀!