我在理解酶的浅层渲染时遇到了问题。
我有一个组件WeatherApplication
,它有一个子组件CitySelection
。
CitySelection
收到属于selectedCity
州的属性WeatherApplication
。
组件:
export default class WeatherApplication extends React.Component {
constructor(props) {
super(props);
this.state = {
city : "Hamburg"
}
}
selectCity(value) {
this.setState({
city: value
});
}
render() {
return (
<div>
<CitySelection selectCity={this.selectCity.bind(this)} selectedCity={this.state.city} />
</div>
);
}
}
我毫不犹豫地测试了CitySeleciton是否存在,并且selectedCity是“汉堡”并且正确的功能被传递。
现在我想测试selectCity方法的行为。
it("updates the temperature when the city is changed", () => {
var wrapper = shallow(<WeatherApplication/>);
wrapper.instance().selectCity("Bremen");
var citySelection = wrapper.find(CitySelection);
expect(citySelection.props().selectedCity).toEqual("Bremen");
});
此测试失败,因为citySelection.props().selectedCity
的值仍然是汉堡。
我检查了render
WeatherApplication
方法再次被调用,this.state.city
具有正确的值。但我无法通过道具获取它。
答案 0 :(得分:6)
在 <?php
define("ARTS_PIC_TEMP_THUMBNAIL_PATH","uploads/");
$uploaded_file_name = $_SERVER['HTTP_X_FILE_NAME'];
$opt = uploadingArts($uploaded_file_name);
function uploadingArts($filename=''){
//$filename=($filename);
$path_of = ARTS_PIC_TEMP_THUMBNAIL_PATH.$filename;
$dest_dir = ARTS_PIC_TEMP_THUMBNAIL_PATH;
$brwName = getBrowser();
if($brwName=='Internet Explorer'){
//for IE
$content = file_get_contents('php://input'); //the string we get contains 2 parts
$content = str_replace(' ','+',$content); // we need to replace spaces by plusses
$content = split(",",$content); // we do not need the first part of the string (the one with the file type).
$content = base64_decode($content[1]);
file_put_contents($dest_dir.''.$filename, $content);
return true;
}
else { //other than IE
// read contents from the input stream
$inputHandler = fopen('php://input', "r");
$fileHandler = fopen($path_of, "w+");
// save data from the input stream
while(true) {
//4096
$buffer = fgets($inputHandler, 1096);
if (strlen($buffer) == 0) {
fclose($inputHandler);
fclose($fileHandler);
return true;
}
fwrite($fileHandler, $buffer);
}
}
}
?>
之后调用wrapper.update()
应该可以解决问题:
selectCity()