有传言说:
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)
谁能确认一下?或者知道一种测试这种查询速度的好方法.谢谢
我在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) 我目前正在处理一个页面,该页面显示特定用户的某组"任务"的状态.要获取数据,我有以下中继容器:
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.无论如何我可以传递这个变量,只在第一个查询中获取该成员的数据?
谢谢.
寻找一个Jquery插件,所以我可以有一个包含可写选项的选择框.因此,使用javascript将选择框与输入字段合并.我认为这是一个相当普遍的要求,任何人都知道这样的插件?
谢谢
在我的组件之外,我需要查询当前活动的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与历史对象保持同步.
我正在使用正则表达式(php/perl兼容)来获取某些文本中的第一句话.我意识到,如果覆盖每一个案例,这可能会变得很大,但只是在目前"足够好"的事情之后.有人为此获得了现成的东西吗?
所以我有这个自定义钩子来解码令牌
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)
我究竟做错了什么...
graphql ×2
javascript ×2
reactjs ×2
relayjs ×2
html ×1
input ×1
jquery ×1
mysql ×1
php ×1
react-hooks ×1
react-redux ×1
react-router ×1
regex ×1
relaymodern ×1
select ×1
typescript ×1