小编Tim*_*Tim的帖子

在MySql查询中RegEx与LIKE的性能

有传言说:

SELECT * FROM lineage_string where lineage like '%179%' and  lineage regexp '(^|/)179(/|$)'
Run Code Online (Sandbox Code Playgroud)

会比这更快:

SELECT * FROM lineage_string where lineage regexp '(^|/)179(/|$)'
Run Code Online (Sandbox Code Playgroud)

谁能确认一下?或者知道一种测试这种查询速度的好方法.谢谢

mysql

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

Relay Modern RefetchContainer道具不会传递给组件

我在Relay Modern中设置refetchContainer时遇到了一些问题.父组件是QueryRenderer,它运行初始查询,适当地填充子组件的道具(a-prop-riately?eh?eh?!).refetchContainer指定我们所有的变量,并在输入字段的onChange事件上,使用新变量重新运行查询.这一切都很完美,除了孩子的道具永远不会更新收到的新数据.我可以向下钻取Relay存储,看到确实收到了带有适当数据的查询.我已经对这个问题感到震惊了一段时间,我会感激一些帮助.可能是我想念的简单事情.Lord知道Relay Modern文档很少.

我已经四处寻找,找不到合适的解决方案.这家伙似乎遇到了类似的问题: 继电器重新提取没有显示结果

QueryRenderer的父组件:

import React, { Component } from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import { graphql, QueryRenderer } from 'react-relay';
import Search from './Search';

const propTypes = {
  auth: PropTypes.object.isRequired,
};

class SearchContainer extends Component {
  render() {
    return (
      <QueryRenderer
        query={graphql`
          query SearchContainerQuery($search: String!){
            users: searchUsers(search:$search, first:10){
              ...Search_users
            }
          }`}
        variables={{ search: 'someDefaultSearch' }}
        environment={this.props.auth.environment}
        render={({ error, props }) => {
          if (error) {
            console.log(error);
          }
          if (props) { …
Run Code Online (Sandbox Code Playgroud)

javascript graphql relayjs react-redux relaymodern

10
推荐指数
2
解决办法
1171
查看次数

中继 - 在查询之前设置变量

我目前正在处理一个页面,该页面显示特定用户的某组"任务"的状态.要获取数据,我有以下中继容器:

export default Relay.createContainer(TaskReview, {
  initialVariables: {
    limit: Number.MAX_SAFE_INTEGER,
    studentId: null,
  },
  fragments: {
    task: () => Relay.QL`
      fragment on Task {
        id,
        title,
        instruction,
        end_date,
        taskDataList(first: $limit, type: "subTasks", member: $studentId) {
          edges {
            node {
              id,
              answer,
              completion_date,
            }
          }
        },
        ...
Run Code Online (Sandbox Code Playgroud)

要定义我想从哪个用户获取数据,我使用:

componentWillMount = () => {
  let {relay} = this.props;
  relay.setVariables({
    studentId: this.props.member.id
  });
}
Run Code Online (Sandbox Code Playgroud)

但是,这里的问题是查询首先null按照中的定义执行initialVariables.我的后端实现有它,如果studentId是NULL,那么它返回所有成员的数据.

结果是上面的查询执行了两次,第一次执行所有成员,第二次执行给定memberId.

这与我内心的其他事物混淆了componentWillUpdate.无论如何我可以传递这个变量,只在第一个查询中获取该成员的数据?

谢谢.

reactjs graphql relayjs

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

可写选择框

寻找一个Jquery插件,所以我可以有一个包含可写选项的选择框.因此,使用javascript将选择框与输入字段合并.我认为这是一个相当普遍的要求,任何人都知道这样的插件?

谢谢

html jquery select input

6
推荐指数
1
解决办法
6704
查看次数

从react-routers browserHistory对象获取当前页面路径

在我的组件之外,我需要查询当前活动的URL.基于此,我将在主体上设置一些类(在我的反应根之外).

第一次尝试是使用

//Gets an array of class names that I can add to my body tag
getClassNames(window.location.pathname);
Run Code Online (Sandbox Code Playgroud)

但是,当React Router导航时,似乎不会更新 window.location.path .令人惊讶的是.

所以我想,好吧,也许我可以从browserHistory获得这个

import { browserHistory } from 'react-router'
Run Code Online (Sandbox Code Playgroud)

但是,唉,我也看不到从这里读取当前页面路径的方法(这个对象似乎没有合适的API文档)

有小费吗?看起来像一个简单的问题,如果window.location.pathname与历史对象保持同步.

javascript reactjs react-router

6
推荐指数
2
解决办法
6319
查看次数

第一句正则表达式

我正在使用正则表达式(php/perl兼容)来获取某些文本中的第一句话.我意识到,如果覆盖每一个案例,这可能会变得很大,但只是在目前"足够好"的事情之后.有人为此获得了现成的东西吗?

php regex

3
推荐指数
1
解决办法
3334
查看次数

TypeScript React Hooks,自定义钩子类型推断问题

所以我有这个自定义钩子来解码令牌

export function useToken(initial: string) {
  const [token, setToken] = useState<string>(initial)
  const [decoded, setDecoded] = useState<Token>()

  useEffect(() => {
    if (token) {
      const value = decodeToken(token)
      if (isTokenExpired(value)) {
        setDecoded(undefined)
      } else {
        setDecoded(value)
      }
    } else {
      setDecoded(undefined)
    }
  }, [token])

  return [decoded, setToken]
}
Run Code Online (Sandbox Code Playgroud)

返回类型看起来不错,这里有一个

[Token, React.Dispatch<React.SetStateAction<string>>]
Run Code Online (Sandbox Code Playgroud)

我有另一个钩子使用这个钩子,但它看到的返回类型不正确

export function useUser() {
  const [decoded, setToken] = useToken(getTokenFromStorage())
  //...
Run Code Online (Sandbox Code Playgroud)

这里 useToken 给了 decoded 和 setToken 相同类型的

Token | React.Dispatch<React.SetStateAction<string>>
Run Code Online (Sandbox Code Playgroud)

IE

decoded: Token | React.Dispatch<React.SetStateAction<string>>, setToken: Token | React.Dispatch<React.SetStateAction<string>>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么...

typescript react-hooks

2
推荐指数
1
解决办法
983
查看次数