如何将其他参数传递给组合选择器?我在尝试着
•获取数据
•过滤数据
•通过myValue向我的数据集/组数据添加自定义值
export const allData = state => state.dataTable
export const filterText = state => state.filter.get('text')
export const selectAllData = createSelector(
allData,
(data) => data
)
export const selectAllDataFiltered = createSelector(
[ selectAllData, filterText ],
(data, text) => {
return data.filter(item => {
return item.name === text
})
}
)
export const selectWithValue = createSelector(
[ selectAllDataFiltered ],
(data, myValue) => {
console.log(myValue)
return data
}
)
let data = selectWithValue(state, 'myValue')
Run Code Online (Sandbox Code Playgroud)
console.log(myValue) 回报 undefined
如何对自定义redux中间件进行单元测试?我有这个简单的函数,应该在给定的超时后发送动作但是...我不知道如何处理它.我找到了关于这个问题的足够资源.
const callAPiTimeoutMiddleware = store => next => (action) => {
if (action[CALL_API]) {
if (action[CALL_API].onTimeout) {
setTimeout(() => {
store.dispatch({ type: action[CALL_API].onTimeout });
}, DEFAULT_TIMEOUT_LENGTH);
}
}
return next(action);
}
Run Code Online (Sandbox Code Playgroud)
这些是基于博客文章的测试,在接受的答案中提到:
describe('callAPiTimeoutMiddleware', () => {
describe('With [CALL_API] symbol', () => {
it('should dispatch custom action', () => {
const clock = sinon.useFakeTimers();
const fakeStore = { dispatch: sinon.spy() };
const fakeNext = sinon.spy();
const fakeAction = {
[CALL_API]: {
endpoint: 'endPoint',
method: 'METHOD',
types: ['REQUEST_TYPE', 'SUCCESS_TYPE', 'FAILURE_TYPE'],
onTimeout: 'TIMEOUT_TYPE', …Run Code Online (Sandbox Code Playgroud) 几天前我开始学习react-redux-immutable,我仍然对构建我的应用程序感到困惑.我有php(symfony/laravel MVC背景)所以我不容易理解一些javascript概念.
1)我有WrapperComponent行:
export default function (props) {
const style = {position: "relative"};
const lines = props.lines;
return (
<div className='wrapper' style={style}>
{lines.map(line => (
<Line key={line.get("id")} {...line.toObject()} />
))}
<Board />
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
2)它连接到WrapperContainer
import Wrapper from '../components/WrapperComponent';
export default connect(
function mapStateToProps(state) {
return {
lines: state.lines.map(line => {
return line.set("board", {
width: state.board.get("width"),
height: state.board.get("height")
});
})
};
},
function mapDispatchToProps(dispatch) {
return {};
}
)(Wrapper);
Run Code Online (Sandbox Code Playgroud)
3)然后有addLine动作
export function addLine(type) {
return {
type: types.ADD_LINE,
payload: …Run Code Online (Sandbox Code Playgroud) 因此,像我之前的其他所有人一样,我正在尝试禁用Chrome自动填充功能。
这向我解释了为什么自动完成关闭不起作用:
用户代理可以允许用户覆盖元素的自动填充字段名称,例如,将其从“关闭”更改为“打开”,以便尽管页面作者有异议也可以记住并预填充值,或者始终“关闭”而不记得价值观。但是,用户代理不应允许用户从“关”到“开”或其他值简单地覆盖自动填充字段的名称,因为如果始终记住所有值,无论站点的首选项如何,都会给用户带来重大的安全隐患。
这应该是解决方案:
在某些情况下,即使将autocomplete属性设置为off,浏览器也会继续建议自动补全值。对于开发人员而言,这种意外行为可能会令人困惑。真正强制不完成的诀窍是为属性分配随机字符串
默认行为
这是预期的。
自动完成关闭
这也是预期的。
自动完成为随机字符串
自动完成功能有所不同,但我仍然看到它,它来自chrome。(我停用了扩展程序,仅在Chrome设置中关闭了自动填充功能,无法显示自动完成功能)
谁能解释一下发生了什么,我最终如何摆脱它?
编辑:
在另一个输入中,相同的格式autocomplete="off"有效,autocomplete="radnomString!23123adf"但无效。将autocomplete属性设置为form元素没有帮助。autocomplete="new-password"也没有帮助。
我有路线:
$app->get('/admin/login/{status}', 'App\Controller\Admin\AdminController:loginAction')
Run Code Online (Sandbox Code Playgroud)
如何使{status}参数可选?
我最近发现了关于Quill文本编辑器的问题,因为我正在使用php和javascript中的新东西,我决定在我的应用程序中使用它而不是Wysiwyg.
但是,Quill文档非常简约.如何添加允许用户显示和编辑当前html的按钮?
我是否必须扩展Quill并制作我自己的一个?
我知道我可以使用这样的PhpStorm注释:
/**
* Class Model
* @property string name
*/
class Model {};
$modelInstance = new Model();
$modelInstance->name;
Run Code Online (Sandbox Code Playgroud)
当我键入$modelInstance->PhpStorm将在自动完成时提供"名称".
是否可以为类的实例创建自定义属性注释?
/**
* Class Model
* @property string name
*/
class Model {};
/**
* @var Model $modelInstance @property text
*/
$modelInstance = new Model();
$modelInstance->text; //PhpStorm does not know about this property
Run Code Online (Sandbox Code Playgroud)
我想在PhpStorm自动完成中拥有属性"text",但仅限于$modelInstance.不适用于类Model的每个实例.
在官方的反应原生文档中,有一节关于Animated.event方法.例如,他们使用以下代码:
onScroll={Animated.event(
// scrollX = e.nativeEvent.contentOffset.x
[{ nativeEvent: {
contentOffset: {
x: scrollX
}
}
}]
)}
Run Code Online (Sandbox Code Playgroud)
我想将正确的值映射到Animated.event方法,我还想将onScroll回调参数映射到我自己的回调.基本上我想做这样的事情:
onScroll={(event) => {
myOwnCallback(event.nativeEvent.contentOffset.x)
Animated.event(
// scrollX = e.nativeEvent.contentOffset.x
[{nativeEvent: {
contentOffset: {
x: scrollX
}
}
}]
)
}}
Run Code Online (Sandbox Code Playgroud)
你能解释一下如何做到这一点吗?
预期结果:
MockedProvider 应该模拟我的 createPost 突变。
实际结果:
Error: No more mocked responses for the query: mutation...
Run Code Online (Sandbox Code Playgroud)
如何重现问题:
我有一个非常简单的存储库。我还创建了一个带有示例提交的单独分支,它破坏了 apollo 模拟提供程序。
1)突变定义在这里:https : //github.com/developer239/react-apollo-graphql/blob/create-post-integration-tests/src/modules/blog/gql.js#L23
export const CREATE_POST = gql`
mutation createPost($title: String!, $text: String!) {
createPost(title: $title, text: $text) {
id
title
text
}
}
`
Run Code Online (Sandbox Code Playgroud)
2)假请求在这里:https : //github.com/developer239/react-apollo-graphql/blob/create-post-integration-tests/test/utils/gql-posts.js#L68
export const fakeCreatePostSuccess = {
request: {
query: CREATE_POST,
variables: {
title: 'Mock Title',
text: 'Mock lorem ipsum text. And another paragraph.',
}
},
result: {
data: {
createPost: {
id: …Run Code Online (Sandbox Code Playgroud) 如何使由创建的资源无效react-cache?
我可以从API获取数据:
const FooResource = createResource(id => fetch(`/foo/${id}`)); // return a promise, or async/await
// inside render...
const fooResponse = FooResource.read(id); // suspends if not in cache; renders if in cache
return <div> {fooResponse} </div>;
Run Code Online (Sandbox Code Playgroud)
但是,当我在后端更新数据时,我无法重新获取前端的数据。
这是我唯一能找到的官方文档:https : //github.com/sw-yx/fresh-concurrent-react/blob/master/apis/react-cache.md
我可以使用一些未公开的API吗?
reactjs ×6
javascript ×4
redux ×3
autocomplete ×2
ecmascript-6 ×2
unit-testing ×2
annotations ×1
apollo ×1
asynchronous ×1
autofill ×1
graphql ×1
html ×1
immutable.js ×1
invalidation ×1
php ×1
phpstorm ×1
quill ×1
react-cache ×1
react-native ×1
react-redux ×1
redux-thunk ×1
reselect ×1
slim ×1
slim-3 ×1
testing ×1
toolbar ×1