小编iRo*_*tia的帖子

了解 NodejS 中的 Express 会话

我试图从文档中理解快速会话,但无法得到一些要点

考虑一下我从存储库中找到的这段代码

app.use(session({
  resave: true,
  saveUninitialized: true,
  secret: 'aaabbbccc',
  store: new MongoStore({
    url: MONGO_URI,
    autoReconnect: true
  })
})); 
Run Code Online (Sandbox Code Playgroud)

现在,我可能知道这里发生了什么,但仍然只是确认

resave: true根据文档,这意味着它将强制将会话保存回会话,即使它没有更改。好吧,酷吗?但是,为什么有人会在未更改的情况下强制保存会话,这会产生什么影响呢?

saveUninitialized: true我们在这里也存储未登录用户的会话吗?

最后,如果有人也可以解释这行代码(我无法理解)

 store: new MongoStore({
        url: MONGO_URI,
        autoReconnect: true
      })
Run Code Online (Sandbox Code Playgroud)

继续,在上面的代码中,repo 的作者没有将会话存储在 cookie 中?只是存储 cookie 标识符吗?

最后,在他们提到/谈论的描述中 cookie.httpOnlycookie.expires以及cookie.domain

现在,我理解了它们的功能,但无法理解它们的实现,所以是否有人可以展示其中任何一个的实现?

cookies node.js

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

Dart 变量存储对值的引用

我刚开始学习 Dart。

在使用 Dart 之前,我曾使用过 Javascript 并有一些经验。

现在,当我浏览Tutorial Point文档时。他们提到过这样的事情

dart 中的所有变量都存储对该值的引用,而不是包含该值。名为 name 的变量包含对值为“Smith”的 String 对象的引用。

在 Javascript 中,我猜数组和对象是引用类型。

意思是,如果我们做这样的事情

[更新:] 此代码片段不正确

let a = ["Apple", "orange"]

let b = a 

a = ["Bananna"] 

console.log(b) //["Bananna"]
Run Code Online (Sandbox Code Playgroud)

但这可能仅适用于 JS 中的对象和数组(而不适用于 const 和 let)

let a = 5
let b = a 
a = 7
console.log(b) //5 
Run Code Online (Sandbox Code Playgroud)

从报价来看,

dart 中的所有变量都存储了对该值的引用

[问题:]这是否意味着即使像 int、string.. 和我们在 Dart 中创建的每个变量都是引用?并且上述代码的等价物将在 Dart 中打印 7 或者我有什么问题(通常)?

let a = 5
let b = a 
a …
Run Code Online (Sandbox Code Playgroud)

javascript dart

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

类型“string”与类型“Properties<ReactText, string & {}>”没有共同的属性

我有一个函数反应元素,如下所示

import { CSSProperties } from 'styled-components'
export interface StylesDictionary {
  [Key: string]: CSSProperties
}
interface Props {
  onClick: () => void
  buttonStyle?: StylesDictionary
}
export default function PreviewButton({ onClick, buttonStyle }: Props) {
Run Code Online (Sandbox Code Playgroud)

当我试图传递这样的风格时

   <PreviewButton
      buttonStyle={{ marginLeft: '20px' }}
      onClick={() => onClickPreview(api, tableDefinition)}
    /> 
Run Code Online (Sandbox Code Playgroud)

打字稿给出以下错误

Type 'string' has no properties in common with type 'Properties<ReactText, string & {}>'
Run Code Online (Sandbox Code Playgroud)

知道我在这里可能做错了什么吗?

typescript reactjs

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

什么是Javascript中的语法糖?

我看过很多帖子,说Class只是语法糖,或者问Java ES6中Class是否是语法糖

但是我很难理解语法糖的含义(我确实得到使事情易于阅读或理解的字面意思)。

我的问题是Java类中的语法糖是怎样的?

例如,在这个问题中,es6类仅仅是javascript中原型模式的语法糖吗?

就像这个例子有什么关系

class Thing {
   //... classy stuff
}
Run Code Online (Sandbox Code Playgroud)

var Thing = function() {
  // ... setup stuff
};

Thing.prototype.doStuff = function() {};
Run Code Online (Sandbox Code Playgroud)

上面的类中不应该有某种方法(doStuff)使之相等吗?

javascript

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

shouldComponentUpdate():返回未定义而不是布尔值。

在任何人将其标记为重复之前,我经历了这个问题 ReactJS警告:Thumbnails.shouldComponentUpdate():返回未定义而不是布尔值。确保返回true或false,并且它不能回答我的问题(或者我无法回答(至少可以这样说))

所以这是我的代码

  shouldComponentUpdate(nextProps, nextState) {
    console.log(this.props.order, nextProps.order)
    if (nextProps.order !== this.props.order) {
      return true;
    }
  }
Run Code Online (Sandbox Code Playgroud)

在这里,当我检查Chrome中的控制台日志时,会引发警告说

shouldComponentUpdate():返回未定义而不是布尔值。确保返回true或false

但是一切都按预期(或我想要的方式)运行,当我做类似的事情时

shouldComponentUpdate(nextProps, nextState) {
    console.log(this.props.order, nextProps.order)
      return nextProps.order !== this.props.order
  }
Run Code Online (Sandbox Code Playgroud)

它不会引发错误。

[问题]我为什么收到该警告?当我明确返回true时?

reactjs

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

如何仅渲染 FlatList 中的几个元素

我说我的数组/对象中有大约 100 个元素

我正在使用FlatList来显示它

   <FlatList
    data={this.props.redditCryptoNews}
     maxToRenderPerBatch={5}
    renderItem={({index, item}) => {
     return (
        <Text style={RedditList}>{item["data"]["title"]}</Text>)}} />
Run Code Online (Sandbox Code Playgroud)

现在,我只想在我的平面列表中显示10 个元素,而不是显示所有100 个元素

出于某种原因,我认为 Facebook 在其 react-native 文档方面做得并不好,这让我有点难以理解

[问题:]我怎样才能实现它?

react-native

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

对 Blur 未被调用做出反应

我不确定,但 onblur 似乎不适合我。

这就是我拥有的组件

export default function Dropdown({
  onChange,
  value,
  placeholder,
  options,
  error,
}) {
  const [showOptions, setShowOptions] = useState(false);

  const hideDropdown = () => {
    console.log("Hello");
    if (showOptions) {
      setShowOptions(false);
    }
  };
  useEffect(() => {
    if (showOptions) {
      hideDropdown();
    }
  }, [value]);
  return (
    <DropdownMain>
      <div onClick={() => setShowOptions(!showOptions)} onBlur={hideDropdown}>
        <Select>
          {value !== null ? _.find(options, { value }).label : placeholder}
        </Select>
      </div>
      <SelectIndicator></SelectIndicator>
      {showOptions &&
        (options || []).map((option, indez) => (
          <Option
            onClick={() => onChange(option.value)}
            key={`dropdownOption${indez}`}
          >
            {option.label} …
Run Code Online (Sandbox Code Playgroud)

reactjs

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

了解||的使用 在代码中

我是Javascript的新手,我试图理解||的使用 在当前的代码中.

所以,我正在浏览这篇关于在Javascript中减少他写这个例子的文章

const fruitBasket = ['banana', 'cherry', 'orange', 'apple', 'cherry', 'orange', 'apple', 'banana', 'cherry', 'orange', 'fig' ];

const count = fruitBasket.reduce( (tally, fruit) => {
  tally[fruit] = (tally[fruit] || 0) + 1 ;
  return tally;
} , {})

count // { banana: 2, cherry: 3, orange: 3, apple: 2, fig: 1 }
Run Code Online (Sandbox Code Playgroud)

[问题]在这里,我无法理解两件事

tally[fruit] = (tally[fruit] || 0) + 1 ; 
Run Code Online (Sandbox Code Playgroud)

这是||做什么的,为什么他用它?(我知道这是一个或运营商)

其次,这, {})在功能结束时意味着什么?

javascript

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

在有状态组件中切换布尔值

我有一个相当简单的有状态组件,我希望在有人点击按钮时切换它的值:

class Layout extends Component {
  state = {
    sidedrawer: false
  }

  sideDrawerCloseHandler = () => {
    this.setState({sidedrawer: false})
  }

  sideDrawerTogglerHandler = () => {
    this.setState({sidedrawer: !sidedrawer})
  }

  render () {
    return (
      <Aux>
        <Toolbar sideDrawerTogglerHandler={this.sideDrawerTogglerHandler}/>
        <SideDrawer SideDrawerOpen={this.state.sidedrawer} sideDrawerCloseHandler={this.sideDrawerCloseHandler} />
        <main className={classes.co}>
          {this.props.children}
        </main>
      </Aux>
    )
  }
}

export default Layout;
Run Code Online (Sandbox Code Playgroud)

现在,当我运行我的 react 应用程序时,它会抛出一个错误:

sidedrawer 没有在第 19 行定义

有人可以帮助我修复和理解错误吗?

第 18 - 19 行恰好是我代码中的这一部分

sideDrawerTogglerHandler = () => {
  this.setState({sidedrawer: !sidedrawer})
}
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

“控制台”类型上不存在属性“详细”

我喜欢创建自己的控制台日志。

//-- Creating own console logs for better logging
console.detailed = function(payload) {
    return console.log(util.inspect(payload, { showHidden: false, depth: null }))
}

console.notice = function(payload) {
    return console.log('\x1b[33m%s\x1b[0m', payload)
}
Run Code Online (Sandbox Code Playgroud)

我刚刚开始使用打字稿,在这里我收到错误

“控制台”类型上不存在属性“详细”

或者

“控制台”类型上不存在属性“通知”。

谁能帮我解决上述错误吗?

更新:根据 Saravana 的回答,有人可以用更人性化的术语向我解释一下吗

在 TypeScript 中,就像在 ECMAScript 2015 中一样,任何包含顶级导入或导出的文件都被视为模块。相反,没有任何顶级导入或导出声明的文件被视为脚本,其内容在全局范围内可用(因此也适用于模块)。”如果您的代码位于模块内部,则需要将其包装在其中全球的

如果您在模块内使用它,您可能还需要将其包装在全局范围内。请参阅 https://www.typescriptlang.org/docs/handbook/declaration-merging.html#global-augmentation

typescript

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

标签 统计

javascript ×4

reactjs ×4

typescript ×2

cookies ×1

dart ×1

node.js ×1

react-native ×1