- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用以下堆栈:
“依赖”:{ "preact": "^8.2.1", “预兼容”:“^3.17.0”, “preact-redux”:“^2.0.3”, “预路由器”:“^2.5.5”, “redux”:“^3.7.2”
结合preact-cli .当我想呈现以下应用程序时:
import { h, Component } from 'preact'
import { Router } from 'preact-router'
import { Provider } from 'preact-redux'
import store from '../store'
import Header from './header'
import Home from '../routes/home'
import Profile from '../routes/profile'
import Login from '../routes/login'
export default class App extends Component {
/** Gets fired when the route changes.
* @param {Object} event "change" event from [preact-router](http://git.io/preact-router)
* @param {string} event.url The newly routed URL
*/
handleRoute = e => {
this.currentUrl = e.url
};
render() {
return (
<div id="app">
<Provider store={store}>
<Header />
<Router onChange={this.handleRoute}>
<Home path="/" />
<Login path="/login" />
<Profile path="/profile" user="me" />
<Profile path="/profile/:user" />
</Router>
</Provider>
</div>
)
}
}
然后只有 Header
组件被渲染但路由被忽略。你知道为什么会这样吗?当我删除 Provider
组件时,它工作正常。任何人都可以帮我找到这种不良行为的原因吗?
为了完整起见:
reducers/index.js
import { combineReducers } from 'redux'
import authReducer from './auth'
const rootReducer = combineReducers({
auth: authReducer
})
export default rootReducer
reducers/auth.js
import * as consts from '../constants/auth'
const initialState = {}
const reducer = (state = initialState, action) => {
switch (action.type) {
case consts.LOGIN_PROCESSING:
return {
...state,
isLoginProcessing: true,
isLoginSuccess: true,
loginError: null
}
case consts.LOGIN_FAILURE:
return {
...state,
isLoginProcessing: false,
isLoginSuccess: false,
loginError: action.payload.error
}
case consts.LOGIN_SUCCESS:
return {
...state,
user: action.payload.user,
isLoginProcessing: false,
isLoginSuccess: true,
loginError: null
}
case consts.REGISTER_PROCESSING:
return {
...state,
isRegisterProcessing: true,
isRegisterSuccess: true,
registerError: null
}
case consts.REGISTER_FAILURE:
return {
...state,
isRegisterProcessing: false,
isRegisterSuccess: false,
registerError: action.payload.error
}
case consts.REGISTER_SUCCESS:
return {
...state,
user: action.payload.user,
isRegisterProcessing: false,
isRegisterSuccess: true,
registerError: null
}
case consts.LOGOUT_PROCESSING:
return {
...state,
isLogoutProcessing: true,
isLogoutSuccess: true,
logoutError: null
}
case consts.LOGOUT_FAILURE:
return {
...state,
isLogoutProcessing: false,
isLogoutSuccess: false,
logoutError: action.payload.error
}
case consts.LOGOUT_SUCCESS:
return {
...state,
user: null,
isLogoutProcessing: false,
isLogoutSuccess: true,
logoutError: null
}
default:
return state
}
}
export default reducer
最佳答案
我现在自己解决了。解决方案非常简单。您只需添加一个根组件作为 redux 提供程序的子组件:
<Provider store={store}>
<div> // <-- adding this root element is the solution
<Header />
<Router onChange={this.handleRoute}>
<Home path="/" />
</Router>
</div>
</Provider>
关于javascript - Preact redux 和 preact 路由器 : Routes not rendered,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47429775/
我目前正在使用 CLI 构建 Preact PWA。 我的理解是,无论我在哪里使用 JSX 定义了组件,我都需要 import { h } from 'preact'在文件的顶部。 我删除了该导入语句
我有一个非常简单的 react 程序,它使用脚本命令和 cdn 导入 react 。 如何在保持相同结构的同时将其转换为预执行? 我试着关注 these说明,但不是很清楚
使用 Preact CLI 是否可以设置应用程序将在根目录之外托管的路径? 例如在 http://mywebsite.com/relativepath/index.html 托管应用程序 最佳答案 您
Preact 标记为 8.5kb,是 Preact 大小的一半。有没有一种方法可以渲染原始 HTML 而无需解析它? 我能想到的一种方法是渲染一个占位符,然后使用innerHTML替换componen
我使用以下堆栈: “依赖”:{ "preact": "^8.2.1", “预兼容”:“^3.17.0”, “preact-redux”:“^2.0.3”, “预路由器”:“^2.5.5”, “redu
如果您在 https://startupguide.vercel.app/ 上访问我的 Preact 应用程序并单击“名称生成器”,您将只看到名称生成器表单(应该如此)。但是如果你去https://s
我只是试图理解Preact信号,所以可能我做错了什么,但我试图允许用户更新一个值,但每当他们这样做时,它就会恢复到缺省值。如果我将其记录下来,它确实会显示更改后的值,但会立即恢复。我是不是遗漏了什么?
I'm just trying to get to grips with Preact Signals so maybe I'm doing something wrong but I'm tr
我正在运行一个带有 preact build 的 preact 项目并按如下方式进行导入:import PresenceToggleAlert from 'async?name=presenceTog
React具有 refs 的概念。 Preact中是否有类似的概念可以在不使用preact-compat的情况下使用? 我希望能够在没有DOM查找的情况下引用Component方法中的元素。 谢谢!
我正在创建一个使用 tsParticles 的 Preact 组件库,但什么也没有出现。 我正在移植 React project但可能有些地方不兼容。 您可以在此处 checkout 组件:https
我对 preact 很陌生,我正在尝试在 preact 中实现 PWA。特别是,此示例应显示人员 ID 列表。 这是index.html页面:
今天我尝试在 webpack 中使用 CSS。它几乎对我有用。 这是目标代码。在浏览器类属性中为空。我尝试了具有相同结果的 className,但 CSS 代码包含在包中。 import css fr
我正在使用 Preact(出于所有意图和目的,React)来呈现保存在状态数组中的项目列表。每个项目旁边都有一个删除按钮。我的问题是:单击按钮时,删除了正确的项目(我多次验证了这一点),但是重新呈现的
Preact CLI声称它支持CSS Modules盒子外面。所以这就是我尝试过的;给定 2 个文件 index.js和 index.module.scss在同一个文件夹中,我尝试了这个: index
简单地导入样式组件会导致浏览器控制台中出现此错误: styled-components.browser.esm.js?face:1670 Uncaught TypeError: (0 , _react
在可编辑的前置元素上,我仅在按下 Enter 键时运行 onKeyDown 脚本,以避免文本中出现不需要的 HTML 元素。 render({}, {content}) { conso
我是 Preact 的新手,我必须为 Preact 中的应用程序编写单元测试用例。我发现 jest 和 enzyme 可以用于相同的用途,但我每次都会遇到错误。谁能推荐一些关于如何在 Preact 上
我对react.js(使用preact)还很陌生,并且遇到了异步路由(preact-async-router)的问题。 我的main.js: import { h, render } from 'pr
我已经使用 preact-cli 创建了一个应用程序,如下所示: preact create 但是没有“索引”页面,我也看不到任何工作脚本或构建文件夹。所以我在徘徊如何访问这些,例如,我可以更改页
我是一名优秀的程序员,十分优秀!