小编gar*_*rds的帖子

IE 10-11 flex-basis属性的行为与webkit浏览器不同

我正在尝试使用由a 和a 组成的Media对象.HTML和类遵循此形式(顺序无关紧要).Media-bodyMedia-figure

.Media
   .Media-figure
   .Media-body
Run Code Online (Sandbox Code Playgroud)

简单的CSS是(没有前缀):

.Media { 
   display: flex 
}

.Media-figure {
   flex: 0 0 auto;

   /* same as...
   flex-grow: 0;
   flex-shrink: 0;
   flex-basis: auto;
   */
}

.Media-body {
   flex: 1 1 0;

   /* same as...
   flex-grow: 1;
   flex-shrink: 1;
   flex-basis: 0;
   */
}
Run Code Online (Sandbox Code Playgroud)

请注意,我正在将Media-figureflex-shrink因子调整为0(与我发布的链接相反).我假设这Media-figure是一个固定的大小,如果我们的空间太小,我们宁愿不要把它缩小.

使用flex-basis: 0for Media-body应该将元素设置为没有初始大小,然后允许它使用剩余的可用空间,因为它是唯一的元素flex-grow: 1.但是,在IE10-11中,flex-basis: 0导致Media-body宽度为内部元素的宽度,并且如果内容太多则会破坏任何包装行为.

http://jsfiddle.net/sgardn04/3enpp4wg/

(注意:如果你在chrome中查看它们,它们看起来完全一样.使用IE10-11!)

我目前的解决方法是设置Media-body { flex-basis: auto },这似乎有效.我假设IE在这里有问题,因为我更喜欢webkit浏览器的行为.是否有支持IE渲染的规范的合理解释?或者基于我在这里定义的类,我们可以期待webkit浏览器的不同行为的任何情况?在这种情况下,这两个属性似乎表现完全相同. …

html css internet-explorer css3 flexbox

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

addEventListener将redux与映射调度进行反应

我目前正在尝试将一个事件监听器添加到我正在做出反应的应用程序中.我这样做是通过挂钩componentDidMount API来实现的,该API 在呈现组件时运行,而不是更多.我的问题是,我使用connectreact-redux我的行动创结合store.dispatch.我不确定如何将事件侦听器绑定到使用dispatch绑定到存储的动作创建器的版本.有一种优雅的方式来做到这一点?

import React, {PropTypes} from 'react';
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import GridApp from '../components/GridApp';
import * as GridActions from '../actions/gridActions';

class App extends React.Component {
  render() {
    const { gridAppState, actions } = this.props;
    return (
        <GridApp gridAppState={gridAppState} actions={actions} />
    );
  }
  componentDidMount() {
    console.log("mounted")
    // the following line won't be bound to the store here...
    document.addEventListener("keydown", GridActions.naiveKeypress );
  }
}

function mapStateToProps(state) …
Run Code Online (Sandbox Code Playgroud)

reactjs redux

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

当使用标题渲染时,React Native FlatList 会延伸到屏幕之外

我正在尝试创建一个在FlatList组件上方呈现的标头。如果屏幕高 800 像素,标题高 100 像素,则标题FlatList应填充 700 像素(带有flexGrow: 1),并且可滚动(如果 太多ListItems)。基本标记如下:

<View style={{flexGrow: 1, backgroundColor: 'soothing-yellow-thunder'}}>
  <Header style={{height: 100}} />

  <FlatList ... />
</View>
Run Code Online (Sandbox Code Playgroud)

但是,当我渲染标题时,FlatList组件的高度实际上是 800px,与包装组件的高度匹配flexGrow: 1。我可以看出它是 800px - 其中最后 100px 只能通过故意滚动到 FlatList 认为结束的位置来访问。FlatList“额外”高度恰好等于标头的高度。实际工作代码以及小吃链接(应该允许您在浏览器中重现,或者如果您安装了 expo,则可以在手机上重现):

https://snack.expo.io/@sgardn04/flatlist-header-example

import * as React from 'react';
import { Text, View, FlatList } from 'react-native';

export default class App extends React.Component {
  _renderList() {
    return (
      <FlatList
        data={[{key: '0', content: 'hello …
Run Code Online (Sandbox Code Playgroud)

react-native expo react-native-flatlist

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

为什么sql中的update命令坚持使用斜单引号?

我一直在更新 mysql 数据库中的某些字段时遇到问题,我很沮丧,有时 mysql 拒绝允许我查询,除非我用斜引号而不是单个引号将字段包装起来。这样做似乎没有明显的模式,有人可以解释这里发生了什么吗?

此查询不使用任何类型的引号(x 是主键)

UPDATE  table SET  x =  1821 WHERE  x =1820
Run Code Online (Sandbox Code Playgroud)

这两个查询因 o 附近的语法问题而失败。

UPDATE  table SET  o =  200 WHERE  x =1820

UPDATE  table SET  'o' =  200 WHERE  x =1820
Run Code Online (Sandbox Code Playgroud)

此查询有效。

UPDATE  table SET  `o` =  200 WHERE  x =1820
Run Code Online (Sandbox Code Playgroud)

mysql 坚持使用斜引号有什么正当理由吗?

mysql sql-update

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

长命令包装在终端中

我正在使用来自我的bash_profile的自定义提示符,当我在终端中输入长命令时,它们会换行在同一行而不是新行.那是怎么回事?

Cyan='\e[0;36m'         # Cyan
export PS1="${Cyan}\w$ \e[m"
Run Code Online (Sandbox Code Playgroud)

macos bash command-line

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