我在LoginForm
中有一个View
组件
export default class App extends Component<Props> {
render() {
return (
<View>
<Header headerText='Test' />
<LoginForm style={{flex: 1, justifyContent: 'center'}}/>
</View>
);
}
}
,我想将LoginForm
居中,但是flex: 1, justifyContent: 'center'
似乎没有用。
我在这里想念什么?请注意,LoginForm
正在渲染其他组件。我应该样式化那些组件吗?
答案 0 :(得分:1)
您需要一个视图来将所有内容居中,并需要一个子窗口来定义表单的大小,如下所示:
<View style={{justifyContent: 'center', alignItems: 'center', flex: 1}}>
<View style={{width: 200, height: 100}}>
<LoginForm />
</View>
</View>
示例:
答案 1 :(得分:0)
可能您需要将flex:1添加到父视图:
<View style={{flex: 1}}>
<Header headerText='Test' />
<LoginForm style={{flex: 1, justifyContent: 'center'}}/>
</View>
编辑:
通过在LoginForm的父组件中放置样式,我的意思与此类似:
import React, {Component} from 'react';
import {
View,
Text,
TextInput,
Button,
} from 'react-native';
class LoginForm extends Component {
render() {
return (
<View style={{ flex: 1, justifyContent: 'center' }}>
<TextInput placeholder={'Username'}/>
<TextInput placeholder={'Password'}/>
<Button title={'Login'} />
</View>
)
}
}
class App extends Component {
render() {
return (
<View style={{ flex: 1, paddingTop: 13, }}>
<Text>Some dummy component</Text>
<LoginForm/>
</View>
);
}
}
export default App;
如果您希望将样式从App组件传递到LoginForm,则可以使用类似于以下的内容:
import React, {Component} from 'react';
import {
View,
Text,
TextInput,
Button,
} from 'react-native';
class LoginForm extends Component {
render() {
return (
<View {...this.props}>
<TextInput placeholder={'Username'}/>
<TextInput placeholder={'Password'}/>
<Button title={'Login'} />
</View>
)
}
}
class App extends Component {
render() {
return (
<View style={{ flex: 1, paddingTop: 13, }}>
<Text>Some dummy component</Text>
<LoginForm style={{ flex: 1, justifyContent: 'center' }}/>
</View>
);
}
}
export default App;
答案 2 :(得分:0)
您需要在容器中设置样式
style={{ justifyContent: 'center', alignItems: 'center' }}
答案 3 :(得分:0)
我认为您应该在LoginFrom的样式中添加alignSelf:'center'