小编Mic*_*hal的帖子

使用带参数的重选选择器

如何将其他参数传递给组合选择器?我在尝试着

•获取数据

•过滤数据

•通过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

javascript ecmascript-6 reactjs redux reselect

19
推荐指数
4
解决办法
2万
查看次数

测试自定义redux中间件

如何对自定义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)

unit-testing asynchronous reactjs redux redux-thunk

12
推荐指数
2
解决办法
5892
查看次数

React Redux责任

几天前我开始学习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)

javascript reactjs immutable.js redux react-redux

7
推荐指数
1
解决办法
402
查看次数

意外的Chrome自动填充行为[禁用Chrome自动填充]

因此,像我之前的其他所有人一样,我正在尝试禁用Chrome自动填充功能。

这向我解释了为什么自动完成关闭不起作用

用户代理可以允许用户覆盖元素的自动填充字段名称,例如,将其从“关闭”更改为“打开”,以便尽管页面作者有异议也可以记住并预填充值,或者始终“关闭”而不记得价值观。但是,用户代理不应允许用户从“关”到“开”或其他值简单地覆盖自动填充字段的名称,因为如果始终记住所有值,无论站点的首选项如何,都会给用户带来重大的安全隐患。

这应该是解决方案

在某些情况下,即使将autocomplete属性设置为off,浏览器也会继续建议自动补全值。对于开发人员而言,这种意外行为可能会令人困惑。真正强制不完成的诀窍是为属性分配随机字符串

默认行为

这是预期的。

默认自动完成

自动完成关闭

这也是预期的。

自动完成关闭

自动完成为随机字符串

自动完成功能有所不同,但我仍然看到它,它来自chrome。(我停用了扩展程序仅在Chrome设置中关闭了自动填充功能,无法显示自动完成功能

谁能解释一下发生了什么,我最终如何摆脱它?

编辑:

在另一个输入中,相同的格式autocomplete="off"有效,autocomplete="radnomString!23123adf"但无效。将autocomplete属性设置为form元素没有帮助。autocomplete="new-password"也没有帮助。

自动完成为随机字符串

html javascript google-chrome autocomplete autofill

7
推荐指数
1
解决办法
2457
查看次数

Slim3可选参数,带控制器方法作为回调

我有路线:

$app->get('/admin/login/{status}', 'App\Controller\Admin\AdminController:loginAction')
Run Code Online (Sandbox Code Playgroud)

如何使{status}参数可选?

slim custom-routes slim-3

5
推荐指数
1
解决办法
3289
查看次数

如何在Wysiwyg中添加Quill中的"show html"按钮?

我最近发现了关于Quill文本编辑器的问题,因为我正在使用php和javascript中的新东西,我决定在我的应用程序中使用它而不是Wysiwyg.

但是,Quill文档非常简约.如何添加允许用户显示和编辑当前html的按钮?

我是否必须扩展Quill并制作我自己的一个?

javascript php toolbar quill

5
推荐指数
2
解决办法
3707
查看次数

PhpStorm属性注释,用于类的实例

我知道我可以使用这样的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的每个实例.

annotations autocomplete phpstorm

5
推荐指数
1
解决办法
3015
查看次数

React-native animated.event自定义onScroll侦听器

在官方的反应原生文档中,有一节关于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)

你能解释一下如何做到这一点吗?

destructuring ecmascript-6 reactjs react-native

5
推荐指数
1
解决办法
7229
查看次数

反应阿波罗错误:查询没有更多的模拟响应:突变

预期结果:

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)

testing unit-testing apollo reactjs graphql

5
推荐指数
1
解决办法
1万
查看次数

react-cache / suspense中的invalidate_createResource无效

如何使由创建的资源无效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吗?

invalidation reactjs react-cache

4
推荐指数
1
解决办法
687
查看次数